1、map()
映射,该方法使用和forEach大致相同,但是该方法有返回值,返回一个新数组,新数组的长度和原数组长度相等。
const arr=[1,4,-3,20,6,-10,8]
// 1.map 映射
const newArr_1=arr.map(function(item,index,arr){
return item>0
})
console.log(newArr_1) // [true, true, false, true, true, false, true]
const newArr_2=arr.map(function(item,index,arr){
return item+2
})
console.log(newArr_2) // [3, 6, -1, 22, 8, -8, 10]
2、find()
遍历数组,当遍历到符合条件订单元素时,停止遍历,返回该符合条件的元素
const flag_1=arr.find(function(item,index,arr){
console.log(item,index)
return item<0
})
console.log(flag_1) // -1
3、 findIndex()
遍历数组,当遍历到符合条件订单元素时,停止遍历,返回该符合条件的元素的索引
const index=arr.findIndex(function(item,index){
return item<0
})
console.log(index) // 2
4、some()
查找数组是否存在符合条件的元素,如果有,停止遍历并返回true,如果没有返回false
const flag_2=arr.some(function(item,index,arr){
console.log(111)
return item%5===0
})
console.log(flag_2) // true
5、every()
判断数组内所有元素是否都符合条件,如果是,返回true,如果不是,在第一个不符合条件处停止遍历,返回false
const flag_3=arr.every(function(item,index,arr){
console.log(222)
return item>-5
})
console.log(arr)
console.log(flag_3)
6、reverse() 翻转数组
console.log(arr.reverse()) // [8, -10, 6, 20, -3, 4, 1]
console.log(arr) // [8, -10, 6, 20, -3, 4, 1]
7、reduce()
没有初始值时:
第一次:prev 指向第一个元素,current 指向第二个元素,index 为current 的索引
第二次:prev 为第一次的返回值,current 指向第三个元素
...
最后一次的函数返回值为reduce最终结果
const a=arr.reduce(function(prev,current,index,arr){
console.log(prev,current,index)
return prev+current
})
console.log(a)
有初始值时:
第一次:prev为初始值,current指向第一个元素
第二次:prev为第一次的函数返回值,current 指向第二个元素
const b=arr.reduce(function(prev,current,index){
console.log(prev,current,index)
return prev+current
},0)
console.log(b)
8、reduceRight()
从右向左遍历
没有初始值时:第一次,prev 指向最后一个元素,current 指向倒数第二个元素
有初始值时:第一次,prev为初始值,current 指向最后一个元素
console.log(arr)
const c=arr.reduceRight(function(prev,current,index){
console.log(prev,current,index)
return prev+current
},0)
console.log(c)
9、forEach() 代替for循环
arr.forEach(function(item,index){
console.log(item,index)
})
10、filter()
过滤效果,把符合条件的元素存放到一个新的数组里
const newArr=arr.filter(function(item){
return item>0
})
console.log(newArr)