JS数组的遍历

数组的作⽤是可以批量保存多条数据,但是当我们需要对数据进⾏操作时,并不能通过直接操作数组来实现效果,还是需要将每⼀条数据从数组中取出来,然后再依次取对其进⾏操作。

数组的遍历就是指依次访问数组中每⼀项数据。

for 循环

for 循环是遍历数组最简单的⼀种,也是使⽤频率最⾼的⼀种。

for(let i = 0, len = ary.length; i < len; i++){
 console.log(ary[i]);
}

for-of
ES6 中新增了⼀种遍历数组的⽅法 for-of,相⽐起 for 循环来说它的代码更加简洁。

let ary = [100, 200, 300, 400];
// 创建⼀个变量 value ⽤来接收数组中的每⼀个值
for(let value of ary){
 console.log(value);
}

说明:效率上来说 for-of 还是⽐不上普通的 for 循环。但是 for-of 除了可以遍历数组外,还可以遍
历⼤多数类数组对象。

for in

let arr = [1, 2, 3];
arr.name = 'LJ';
arr.foo = function() {};
for(let key in arr) {
   console.log(`key: ${key}; item: ${arr[key]}`);
}

every 方法

遍历数组中的每一个元素,然后与回调函数中设定的条件进行比对,如果数组中的全部元素都符合该条件则返回 true,只要有一个元素不符合该条件就返回 false。
返回值 : 布尔值;是否改变原数组 : 否。

let arr = [1, 2, 3, 4, 5, 6];
                let new_arr = arr.every((item, index) => item >= 1);
                console.log(arr);// [ 1, 2, 3, 4, 5, 6 ]
                console.log(new_arr);// true

some 方法

遍历数组中的每一个元素,然后与回调函数中设定的条件进行比对,如果数组中有一个元素符合该条件就返回 true,除非所有元素都不符合该条件就返回 false。
返回值 : 布尔值;是否改变原数组 : 否。

let arr = [1, 2, 3, 4, 5, 6];
               let new_arr = arr.some((item, index) => item > 2);
                console.log(arr);// [ 1, 2, 3, 4, 5, 6 ]
                console.log(new_arr);// true

filter 方法

过滤数组中不符合回调函数中设定条件的元素。
返回值 : 返回过滤后的数组;是否改变原数组 : 否。

    let arr = [1, 2, 3, 4, 5, 6];
               let new_arr = arr.filter((item, index) =>  item > 2);
               console.log(arr);// [ 1, 2, 3, 4, 5, 6 ]
               console.log(new_arr);// [ 3, 4, 5, 6 ]

map 方法

将数组中的元素进行映射。
返回值 : 返回映射后的结果;是否改变原数组 : 否。

let arr = [1, 2, 3, 4, 5, 6];
              let new_arr = arr.map((item, index) => `num: ${item}`);
               console.log(arr);// [ 1, 2, 3, 4, 5, 6 ]
               console.log(new_arr);// [ 'num: 1', 'num: 2', 'num: 3', 'num: 4', 'num: 5', 'num: 6' ]

forEach 方法

遍历数组
返回值 : 无;是否改变原数组 : 否。

 let arr = [1, 2, 3, 4, 5, 6];
               arr.forEach((item, index) => {
                  console.log(`index: ${index}; item: ${item}`);
               });

reduce 方法(迭代)

归并数组中的元素
返回值 : 返回归并后的结果;是否改变原数组 : 否。

 let arr = [1, 2, 3];
            let res = arr.reduce((prev, next) => prev + next);
            console.log(arr);// [ 1, 2, 3 ]
            console.log(`sum: ${res}`);// sum: 6
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值