数组遍历:forEach
// forEach:遍历数组,不改变原数组
let Ali=document.querySelectorAll('li');
Ali.forEach(function(node){//只有nodeList、和数组才能使用forEach方法
node.onclick=function(){
console.log(node);
}
})
当数组的每一项为引用类型的时候forEach会改变原数组
数组求和:reduce
let ary=[1,2,3,4]
console.log(ary.reduce((a,b)=>a+b))
reduce方法接受一个对数组内部做操作的参数函数,还可以求积等。
数组过滤:filter
//filter:对数组进行过滤得到一个新数组,不改变原数组
let ary=[1,2,3,4,5,6,7,9];
// let bry=ary.filter(function(n){
// if (n%2) {//奇数
// return false;
// } else {//偶数
// return true;
// }
// })
let ary2=ary.filter(n=>!(n%2));//筛选出偶数
console.log(ary2);
对数组每一项操作:map
// map:对数组中的每一项进行处理,得到一个新数组,不改变原数组
let str=['q','w','e','r'];
// let str2=str.map(function(node){
// return node+'~';
// })
let str2=str.map(node=>node+'~')
console.log(str2);
//对数组每一项求立方
let num=[1,2,3];
let num2=num.map(n=>n**3);
console.log(num2);
数组排序:sort
// sort:排序函数,可自定义排序规则,会改变原数组
let input=[1,4,89,23,5,11];
// input.sort(function(a,b){//从小到大
// return a>b ?1:-1;
// });
// input.sort(function(a,b){//从小到大
// return a-b;
// });
// input.sort((a,b)=>a-b);//从小到大(升序)
// input.sort((a,b)=>b-a);//从大到小(降序)
input.reverse()//反序
console.log(input);
向数组中添加或者删除一个元素:push、pop、shift、unshift、splice
push:从数组末尾追加一个数据
pop:从数组末尾删除一个数据
shift:向数组头部删除一个数据
unshift:向数组头部添加一个数据
splice(index,0,data):向数组指定位置添加一个数据
splice(index,1): 从数组指定位置删除一个元素。
splice方法 非常强大,可添加、删除、替换元素
从数组中查找某一个数据:indexOf:返回对应的下标
let number=[12,13,15,16];
console.log(number.indexOf(13));//1
slice方法:
slice方法主要用于从数组中取出数据
let arr=[1,2,3,4,5]
arr.slice(1)//取index=1的数据:2
arr.slice(-3)//取倒数第三个到最后的数据:3,4,5
arr.slice(1,3)//取index=1到index=2的数据:2,3
arr.slice(-3,-1)//取到数第三个到第二个数据:3,4