JS数组的五种迭代方法

个人理解,不做参考,欢迎指导!

数组的迭代就是对数组进行遍历筛选过滤数组中的数据。

1.数组.every(function(数组中的项,数组中项的下标,整个数组){   })

var arr = [1,2,3,4,5,6];
var a = arr.every(function (a,b,c) {
    console.log(a,b,c);
    return a > 0 ;
    // 控制台输出结果如下
    // 1 0 (6) [1, 2, 3, 4, 5, 6]
    // 2 1 (6) [1, 2, 3, 4, 5, 6]
    // 3 2 (6) [1, 2, 3, 4, 5, 6]
    // 4 3 (6) [1, 2, 3, 4, 5, 6]
    // 5 4 (6) [1, 2, 3, 4, 5, 6]
    // 6 5 (6) [1, 2, 3, 4, 5, 6]
    // true

    // 如果筛选的条件有一个数据不符合那么就会返回false,
    // 且后面的代码不在执行,如果都符合才会返回true,全真为真,一假为假

    // 如果不设置return,那么函数执行一次就会结束循环
    // 因为函数不设置返回值返回结果为undefined,
    // undefined的布尔值就是false,所以必须设置返回值,
    // 返回值后边跟上筛选数据的条件,every的返回值只有true 和false
});
console.log(a); 

2数组.some(function(数组中的项,数组中项的下标,整个数组){   });

var arr = [1,2,3,4,5,6];
var a = arr.some(function (a,b,c) {
    console.log(a,b,c);
    return a > 3 ;
    // 控制台输出结果如下
    // 1 0 (6) [1, 2, 3, 4, 5, 6]
    // 2 1 (6) [1, 2, 3, 4, 5, 6]
    // 3 2 (6) [1, 2, 3, 4, 5, 6]
    // 4 3 (6) [1, 2, 3, 4, 5, 6]
    // true

    // 如果筛选的条件有一个数据符合那么就会返回true,循环只执行一次
    // 且后面的代码不在执行,如果都符合才会返回false,全假为假,一真为真

    // 如果不设置return,那么函数执行全部就会结束循环
    // 因为函数不设置返回值返回结果为undefined,
    // 根据some的用法全假为假会执行六次判断到底是否为假
    // undefined的布尔值就是false,所以必须设置返回值,
    // 返回值后边跟上筛选数据的条件,some的返回值只有true 和false
});
console.log(a); 

 3.数组.filter(function(数组中的项,数组中项的下标,整个数组){   });

var arr = [1,2,3,4,5,6];
var a = arr.filter(function (a,b,c) {
    console.log(a,b,c);
    return a > 3 ;
    // 控制台输出结果如下
    // (3) [4, 5, 6]

    // filter 只返回符合条件的数据组成新数组,循环全部数据,
    // 因为要判断每个数据是否符合条件

    // 如果不设置return,那么函数不会执行
    // 因为函数不设置返回值返回结果为undefined,
    // 根据filter的用法只返回符合条件的数据组成新数组,
    // 没有设置返回值就全都是undefined,结果返回空数组
    // undefined的布尔值就是false,所以必须设置返回值,
    // 返回值后边跟上筛选数据的条件,filter的返回值是符合条件的数据组成的新数组
});
console.log(a); 

 4.数组.map(function(数组中的项,数组中项的下标,整个数组){   });

var arr = [1,2,3,4,5,6];
var a = arr.map(function (a,b,c) {
    console.log(a,b,c);
    return a > 3;
    // 控制台输出结果如下
    // (6) [false, false, false, true, true, true]

    // map 返回条件执行后的结果 return 1 就返回六个一
    // 因为要判断每个数据是否符合条件所以循环全部数据

    // 如果不设置return,那么返回六个undefined组成的数组,
    // 因为函数不设置返回值返回结果为undefined,
    // 根据map的用法返回条件执行后的结果,
    // 没有设置返回值就全都是undefined,结果返回六个undefined
    
    // 返回值后边跟上筛选数据的条件,map的返回值是条件执行后的结果数据组成的新数组
});
console.log(a); 

5.4.数组.forEach(function(数组中的项,数组中项的下标,整个数组){   });

forEach 纯粹遍历数组没有任何作用,没有返回值,for循环的简写版,一般用于修改原数组的数据

var arr = [1,2,3,4,5,6];
var a = arr.forEach(function (a,b,c) {
    console.log(a,b,c);
    arr[3] = 9;
    // 控制台输出结果如下
    // (6) [1, 2, 3, 9, 5, 6]

//    forEach会循环全部数据
});
console.log(arr); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值