forEach
array.forEach(function(currentValue, index, arr))
- currentValue: 数组当前项的值
- index: 数组当前项的索引
- arr: 数组对象本身
var arr = [1, 2, 3];
var sum = 0;
arr.forEach(function(value, index, array) {
console.log('每个数组元素' + value);
console.log('每个数组元素的索引号' + index);
console.log('数组本身' + array);
sum += value;
})
console.log(sum); // 6
filter
array.filter(function(currentValue, index, arr))
- filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,主要用于筛选数组
- 注意他直接返回一个新数组
- currentValue: 数组当前项的值
- index: 数组当前项的索引
- arr: 数组对象本身
var arr = [12, 66, 4, 88, 3, 7];
var newArr = arr.filter(function(value, index) {
return value >= 20;
});
console.log(newArr); // [66, 88]
some
array.some(function(currentValue, index, arr))
- some()方法用于检测数组中的元素是否满足指定条件,通俗点:查找数组中是否有满足条件的元素
- 注意它返回值是布尔值,如果查找到这个元素,就返回true,如果查找不到就返回false
- 如果找到第一个满足条件的元素,则终止循环,不再继续查找
- currentValue: 数组当前项的值
- index: 数组当前项的索引
- arr: 数组对象本身
var arr = ['red', 'pink', 'blue'];
var flag = arr.some(function(value) {
return value == 'pink';
});
console.log(flag); // true
filter与some区别
- filter 是查找满足条件的元素 返回的是一个数组 而且是把所有满足条件的元素返回回来
- some 是查找满足条件的元素是否存在 返回的是一个布尔值 如果查找到第一个满足条件的元素就终止循环
forEach与some区别
var arr = ['red', 'green', 'blue', 'pink'];
arr.forEach(function(value) {
if (value == 'green') {
console.log('找到了该元素');
return true; // 在forEach 里面 return 不会终止迭代
}
console.log(11); // 打印三次
})
// 如果查询数组中唯一的元素, 用some方法更合适,
arr.some(function(value) {
if (value == 'green') {
console.log('找到了该元素');
return true; // 在some 里面 遇到 return true 就是终止遍历 迭代效率更高
}
console.log(11); // 只打印一次
});