一、map
map()方法定义在JavaScript的Array中,它返回一个新的数组,数组中的元素为原始数组调用函数处理后的值。
如:
let arr1 = [1, 2, 3, 4];
let arr2 = arr1.map(item => item + 1);
console.log(arr2); // [2, 3, 4, 5]
二、filter
filter() 方法创建一个新的数组,新数组中的元素是通过检查筛选出数组中符合条件的所有元素。
如:
let arr1 = [1, 2, 3, 4];
let arr2 = arr1.filter(item => item === 3);
console.log(arr2); // [3]
三、some
some() 方法用于检测数组中是否有满足指定条件的元素。some() 方法会依次执行数组的每个元素:如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再遍历。如果没有满足条件的元素,则返回false。
如:
let arr1 = [1, 2, 3, 4];
let arr2 = arr1.some(item => item === 3);
let arr3 = arr1.some(item => item === 5);
console.log(arr2); // true
console.log(arr3); // false
四、every
every() 方法用于检测数组所有元素是否都符合指定条件。如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行遍历。如果所有元素都满足条件,则返回 true。
如:
let arr1 = [1, 2, 3, 4];
let arr2 = arr1.every(item => item > 1);
let arr3 = arr1.every(item => item > 0);
console.log(arr2); // false
console.log(arr3); // true
五、reduce
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
如:
let arr1 = [1, 2, 3, 4];
let arr2 = arr1.reduce((total, item) => {return total + item;}, ‘’);
console.log(arr2); // 10
六、reduceRight
reduceRight() 方法的功能和 reduce()功能是一样的,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加。
七、forEach
forEach无法中断循环,不能使用break/continue,return也无效
八、for...in...
循环键名/索引,一般用来遍历对象的可枚举属性列表(包括[[Prototype]]链),数组的私有属性也会被遍历,所以一般我们不会用这个方法遍历数组。
九、for...of...
for of 是es6的方法,弥补了forEach和for in循环的弊端。既有return,而且不会遍历数组的私有属性,但是for of不能遍历对象(可以遍历字符串,数组对象)。