数组迭代(遍历)方法

迭代(遍历)方法:forEach()、map()、filter()、some()、every();

1.forEach()

对数组中的每一运行给定的函数 , 没有返回值,常用来遍历元素。
array.forEach(function(value, index, arr){});
value:数组当前项的值
index:数组当前项的索引
arr:数组对象本身(下同)
eg:
var arr = [1, 2, 3]
var sum = 0;
arr.forEach(function (value, index, Array) {
    console.log('数组元素' + value + '数组索引' + index);
    sum += value;
})
console.log('数组和:' + sum);

运行结果:

2.filter()  

  filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,主要用于筛选数组。

array.filter(function(value, index, arr){});

注意它直接返回一个新数组。arr可以省略。

eg:

var arr = [9, 12, 44, 66];
var newArr = arr.filter(function (value, index) {
    return value >= 20;  // 选出数组中大于20的元素
})
console.log(newArr);  // [ 44, 66 ]

3.map()

对数组中的每一运行给定的函数 , 返回每次函数调用的结果组成的数组。
array.map(function(value,index,arr){});
eg:
var arr = [9, 12, 44, 66];
var newArr = arr.map(function (value, index) {
    return value * 2;  //  数组元素每个都乘2
})
console.log(newArr);//[ 18, 24, 88, 132 ]

4.some()

 some() 方法用于检测数组中的元素是否满足指定条件。通俗点,查找数组中是否有满足条件的元素。

array.some(function(currentValue, index, arr){})

注意它返回值是布尔值, 如果查找到这个元素, 就返回true ,  如果查找不到就返回false。

如果找到第一个满足条件的元素,则终止循环. 不在继续查找。

补充:在some 里面 遇到 return true 就是终止遍历。这可以用来返回其他的东西。

var arr = [9, 12, 44, 66];
var flag = arr.some(function (value) {
    return value < 10;
});
console.log(flag);//true

5.every()

every()方法和some()差不多,它需要检测数组中的元素全部满足指定条件,它才返回true,

有一个不满足就返回false。

var arr = [9, 12, 44, 66];
var flag = arr.every(function (value) {
    return value < 10;
});
console.log(flag);//false

注意:

1. filter 也是查找满足条件的元素 返回的是一个数组 而且是把所有满足条件的元素返回回来。

2. some 也是查找满足条件的元素是否存在  返回的是一个布尔值 如果查找到第一个满足条件的元素就终止循环。

区别:

forEach()、filter()、some()功能都有遍历迭代,但也是有区别的。

就列如:

var arr = ['red', 'green', 'blue', 'pink'];
arr.forEach(function (value) {
    if (value == 'green') {
        console.log('找到了该元素');
        return true; 
    }
    console.log(11);
})

输出结果:

(filter()和forEach()一样就不演示了)

我们发现:在forEach 和filter里面 return 不会终止迭代 。

而some():

var arr = ['red', 'green', 'blue', 'pink'];
arr.some(function (value) {
    if (value == 'green') {
        console.log('找到了该元素');
        return true;
    }
    console.log(11);
});

运行结果:

 所以some是找到第一个满足条件的元素,则终止循环. 不在继续查找。

因此 在some 里面 ,遇到 return true 就终止遍历,迭代效率更高。

如果查询数组中唯一的元素, 用some方法更合适。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值