every
every 不会对原数组进行修改,它的返回值是一个布尔值。只要所有的元素都具备某特性后,才会返回 true,只要有一个不满足,就会结束循环,返回 false
every 用法
let list = [2, 4, 6, 8, 10]
let bool = list.every((item, index, list) => {
return item % 2 === 0
})
some
some 和 every 刚好相反,只要数组有一个元素满足条件,循环就会结束并返回 true。遍历到最后都没有一个元素满足条件,就会返回 false
some 用法
let list = [2, 4, 6, 8, 10]
let bool = list.some((item, index, list) => {
return item === 2
})
filter
filter 方法不会对原数组进行修改,会返回一个新的数组,新的数组中,每个元素都是符合条件的数据项。
filter 用法
let list = ['abc', 'abcd', 'abcde', 'abcdef', 'abcdefg']
let res = list.filter((item, index, list) => {
return item.length > 4
})
res => ['abcde', 'abcdef', 'abcdefg']
map
map 方法不会改变原数组,会返回一个新数组,新数组中的元素为原始数据中的每个元素调用函数处理后得到的结果。
map 用法
let list = [2, 4, 6, 8, 10]
let res = list.map((item, index, list) => {
item = item / 2
return item
})
res => [1, 2, 3, 4, 5]
forEach
forEach 可以改变原数组,没有返回值,不支持 break
forEach 用法
let list = [2, 4, 6, 8, 10]
list.forEach((item, index, list) => {
item = item / 2 // 这种方法不能修改原数组
list[index] = item / 2 // 此方法会修改原数组
})
list => [1, 2, 3, 4, 5]
flat
扁平化数组,多维数组变一维
