五个数组方法forEach、map、filter、some、every的选择与使用

forEach() 方法:对数组的每一个元素执行一次提供的函数。
map() 方法:创建一个新数组,其结果是该数组都执行一次函数,原函数保持不变。
filter() 方法:使指定函数测试数组的每一个元素,并放回一个通过元素的新数组。
some() 方法:测试该数组有元素通过了指定函数的测试,如果有返回true,否则,返回false。
every() 方法:测试该数组是否全部通过指定函数测试,全部通过返回true,否则,返回false。

forEach 方法

forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
注意: forEach() 对于空数组是不会执行回调函数的。

// 打印每个数组元素
var arr = ["a", "b", "c"];
arr.forEach(function(element,index) {
    console.log(element,index);      
});

map 方法

对当前数组进行指定操作(按照原始数组元素顺序依次处理元素。),并返回操作过后的新数组
注意: 1. map() 不会对空数组进行检测。2. map() 不会改变原始数组。

// 对每个数组元素执行加法运算
var arr = [1, 2, 3, 4, 5];
arr.map(function(item,index) {
    return item += 2;
});

filter 方法

对数组进行指定函数的过滤,并返回一个新数组
注意: 1. filter() 不会对空数组进行检测。2. filter() 不会改变原始数组。

// 过滤出大于10的数
var arr = [12, 5, 8, 130, 44];
arr.filter(function(item){
    return item > 10
});
// es6
arr.filter(item => item > 10);

some 方法

判断当前数组有满足指定要求的元素,返回 Boolean: true/false
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。

var arr = [12, 5, 8, 130, 44];
arr.some(function(value){                  // true
    return value>10
});

every 方法

判断当前数组所有元素是否满足条件,返回 Boolean: true/false
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回 true。
注意: 1. every() 不会对空数组进行检测。2. every() 不会改变原始数组。

var arr = [12, 5, 8, 130, 44];
arr.every(function(value){                 // false
    return value>10
});

猜你喜欢

转载自blog.csdn.net/jiabin_xu/article/details/81126935