some
遍历数组,判断子项满足条件返回的结果是个bool值,若有一个子项满足条件,就返回true
不影响原数组
const arr=[1,2,1,3,12,3,1]
const bol=arr.some(item=>item>2)
//item表示子项,index表示索引,arr 表示原素组
const bol1=arr.some((item,index,arr)=>item<0)//false
console.log(bol)//true
every
遍历数组,判断子项满足条件返回的结果是个bool值,只有全部子项满足条件,才返回true,
使用场景 :全选与反选
不影响原数组
const arr=[1,2,1,3,12,3,1]
const bol=arr.every(item=>item>2)
//item表示子项,index表示索引,arr 表示原素组
const bol1=arr.every((item,index,arr)=>item>0)//true
console.log(bol)//false
filter
遍历数组,判断子项满足条件,返回的结果是个新数组
不影响原数组
const arr=[1,2,1,3,12,3,1]
const newArr=arr.filter(item=>item===1)
console.log(newArr) //[1,1,1]
find
遍历数组,查找符合条件的子项,返回子项,没有符合条件的返回undefined
不影响原数组
对于空数组,函数是不会执行的
array.find(function(currentValue, index, arr),thisValue),其中currentValue为当前项,index为当前索引,arr为当前数组
let test = [1, 2, 3, 4, 5];
let a = test.find(item => item > 3);
console.log(a); //4
let b = test.find(item => item == 0);
console.log(b); //undefined
findIndex
查找数组中满足条件的第一项元素的下标
不影响原数组
const arr = [1, 2, 3, 4, 5, 3, 3, 2, 4, 5 ]
let index = arr.findIndex(item => item > 2)
console.log(index)
reduce
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
reduce() 可以作为一个高阶函数,用于函数的 compose
reduce() 对于空数组是不会执行回调函数的
array.reduce(function(prev, current, currentIndex, arr), initialValue)
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const sum = arr.reduce( (prev, current)=> prev+current, 0)
console.log(sum) //55
flat
将数组扁平化
let arr = [0, 1, 2, [3, 4]]
let arr1 = arr.flat()
console.log(arr) // [0, 1, 2, [3, 4]]
console.log(arr1) // [0, 1, 2, 3, 4]
let arr2 = [0, 1, 2, [[[3, 4]]]]
let arr3 = arr2.flat(2)
console.log(arr3) // [0, 1, 2, [3, 4]]
let arr4 = arr2.flat(Infinity)
console.log(arr4)// [0, 1, 2, 3, 4]
// 如果原数组有空项,flat()方法会跳过空项
let arr5 = [1, 2, , 4, 5];
let arr6 = arr5.flat();
console.log(arr6) // [1, 2, 4, 5]
flatMap
flatMap()对数组的每个成员执行函数,相当于执行Array.prototype.map(),然后对返回值组成的数组执行flat()方法
// 相当于 [[2, 4], [3, 6], [4, 8]].flat()
[2, 3, 4].flatMap((x) => [x, x * 2])
// [2, 4, 3, 6, 4, 8]
entries() 、keys() 、values()
entries(),keys()和values() —— 用于遍历数组。它们都返回一个遍历器对象,可以用for…of循环进行遍历
区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历
let arr = ['a', 'b', 'c', 'd']
for (let index of arr.keys()) {
console.log(index)
}
// 0
// 1
// 2
// 3
for (let item of arr.values()) {
console.log(item)
}
// a
// b
// c
// d
for (let [index, item] of arr.entries()) {
console.log(index, item)
}
// 0 "a"
// 1 "b"
// 3 "c"
// 4 "d"
本文含有隐藏内容,请 开通VIP 后查看