arr.forEach()
代替普通的for循环
可接收两个参数,(循环回调函数,this指向谁)
let arr = ['apple','orange','bananer','tomato'];
arr.forEach(function(val,index,arr){
console.log(val,index,arr);//值,索引,原数组
});
arr.map()
做数据交互‘映射’
正常情况下需要配合return,返回的是一个新数组
若没有return,相当于forEach
arr.fliter() 过滤一些不合格的元素
如果返回true,就留下来
arr.some()
数组里某一个元素符合条件就返回true,类似于查找功能
let arr = ['apple','orange','bananer','tomato'];
let b = arr.some((val,index,arr)=>{
return val =='apple';
});
console.log(b);//true
arr.every()
数组里每一个元素都符合条件才能返回true
---------------------------------------------------------以上方法都接收三个参数,val,index,arr---------------------------------------------------------------
arr.reduce()
接收四个参数,prev(上次返回的结果),cur(当前这个参数),index,arr
数组求和
let arr = [1,2,3,4,5,6,7];
let b = arr.reduce((prev,cur,index,arr)=>{
return prev+cur;
})
console.log(b);//38
求数组的阶乘
let arr = [2,2,3];
let b = arr.reduce((prev,cur,index,arr)=>{
return Math.pow(prev,cur);
})
console.log(b);//64
新增语法:a**b 表示a的b次方。
arr.reduceRight()
和arr.reduce()相反,从右往左
arr.keys() 数组的下标
arr.values() 数组的值
arr.entries() 数组的实体
let arr = [2,2,3];
for(let val of arr.entries()){
console.log(val);
// Array(2) [0, 2]
// Array(2) [1, 2]
// Array(2) [2, 3]
}