js数组的5个迭代方法 every() filter() forEach() map() some()
参数
每个方法接收两个参数:以每 一项为参数运行的函数,以及可选的作为函数运行上下文的作用域对象 (影响函数中this的值)。传给每个方法的函数接收3个参数:数组元 素、元素索引和数组本身。因具体方法而异,这个函数的执行结果可能 会也可能不会影响方法的返回值。
区别
every():对数组每一项都运行传入的函数,如果对每一项函数都 返回true,则这个方法返回true。
let array= [1, 2, 3, 4, 5, 4, 3, 2, 1];
let result = array.every((item, index, array) => item > 2);
console.log(result); // false
filter():对数组每一项都运行传入的函数,函数返回true的项会 组成数组之后返回。
let result = array.filter((item, index, array) => item > 2);
console.log(result ); // 3,4,5,4,3
forEach():对数组每一项都运行传入的函数,没有返回值。
array.forEach((item, index, array) => { // 执行某些操作 });
map():对数组每一项都运行传入的函数,返回由每次函数调用的 结果构成的数组。
let result = numbers.map((item, index, array) => item * 2);
console.log(result ); // 2,4,6,8,10,8,6,4,2
some():对数组每一项都运行传入的函数,如果有一项函数返回
true,则这个方法返回true。
let result = array.some((item, index, array) => item > 2);
console.log(result); // true
总结
除了 forEach()没有返回值外,其它四个方法都有返回值。forEach()方法相当于使用for循环遍历数 组。 这些方法都不改变调用它们的数组。