1.find()
find()返回值是第一个符合条件的数组子项,找到符合条件的之后就不在继续遍历。如果没有符合条件的元素则返回undefined。
let array = [{ name: '张三', age: 1 }, { name: '李四', age: 2 },{ name: '王五', age: 3 }]
let findItem = array.find(item => item.name === '张三')
console.log(findItem) // { name: '张三', age: 1 }
2.findIndex()
findIndex() 返回第一个符合条件的数组子项的下标,找到符合条件的之后就不在继续遍历。如果没有符合条件的元素则返回-1。
let array = [{ name: '张三', age: 1 }, { name: '李四', age: 2 },{ name: '王五', age: 3 }]
let findIndex = array.findIndex(item => item.name === '张三')
console.log(findIndex) // 0
3.forEach()
forEach() 方法对数组的每个元素执行一次给定的函数。
// 语法: array.forEach(function(item,index,array))
const array = ['a', 'b', 'c'];
array.forEach((element) => console.log(element));
// Expected output: "a"
// Expected output: "b"
// Expected output: "c"
4.map()
map() 返回数组,数组中的元素为原始数组调用函数处理后的值。
let array = [{ name: '张三', age: 1 }, { name: '李四', age: 2 },{ name: '王五', age: 3 }]
let map = array.map(item => item.age + 1) // 返回符合条件元素组成的数组
console.log(map ) // [{ name: '张三', age: 2 }, { name: '李四', age: 3 },{ name: '王五', age: 4 }]
5.filter()
filter() 返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。
let array = [{ name: '张三', age: 1 }, { name: '李四', age: 2 },{ name: '王五', age: 3 }]
let filter = array.filter(item => item.age > 1) // 返回符合条件元素组成的数组
console.log(filter) // [{ name: '李四', age: 2 },{ name: '王五', age: 3 }]
6.includes()
includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
// 语法: array.includes(searchElement)
let array = ['abc', 'def', 'ghi']
array.includes('def')
// => true
array.includes('txt')
// => false
7.some()
some() 方法用于检测数组中的元素是否满足指定条件。如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。如果是空数组返回fales。
// 语法: array.some(function(item,index,array))
let array = [{ name: '张三', age: 1 }, { name: '李四', age: 2 },{ name: '王五', age: 3 }]
array.some(item => item.name=== '张三')
// => true
8.every()
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。如果所有元素都满足条件,则返回 true。如果是空数组返回true。
// 语法: array.every(function(item,index,array))
let array = [{ name: '张三', age: 1 }, { name: '李四', age: 2 },{ name: '王五', age: 3 }]
array.every(item => item.age < 4)
// => true
注意:some()判断数组中是否至少有一个元素满足条件,every()判断数组中是否每个元素都满足条件。
9.reduce()
reduce() 方法对数组中的每个元素按序执行一个提供的 reducer 函数,每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
// 语法: array.reduce(function(accumulator,currentValue,currentIndex,array), initialValue)
const array1 = [1, 2, 3, 4];
// 0 + 1 + 2 + 3 + 4
const initialValue = 0;
const sumWithInitial = array1.reduce(
(accumulator, currentValue) => accumulator + currentValue,
initialValue,
);
// => 10
使用 reduce() 实现 filter() + map()
// [1, 2, 3, 4] --> [4, 6, 8]
// filter() + map()
const arr = [1, 2, 3, 4];
const result = arr.filter((item) => item > 1).map((item) => item * 2);
// reduce()
const result2 = datasetList.reduce((acc, item) => {
if (item > 1) {
acc.push(item * 2);
}
return acc;
}, []);