JS中数组遍历的几种方式和区别:forEach,map...

这里还是推荐一篇不错的文章:如何在 JS 代码中消灭 for 循环

ES6中数组的API有:

forEach(callback)  、

map(callback) 、

includes(string) 、indexOf(string) 【ES5】、ES6中Array.includes()函数的用法

filter(callback) 、filter() es6 方法总结

some(callback) 、every(callback) ...ES6 数组some()和every()使用

以及可用于对象(数组)合并,去重的Set对象  Set 对象

说下forEach与map的共同之处:都是遍历数组的API、都不会改变原数组

forEach与map的区别:

forEach无返回值如:

var arr = [1,2,3];
arr.forEach(item=>{
    return item === 2
})
//结果为:undefined

map有返回值,返回运算结果的一个数组,如:

var arr = [1,2,3];
arr.map(item=>{
    return item === 2
})
//结果为:[false, true, false]

这里顺道讲下如何拷贝一个数组,而不是拷贝数组的地址:

var arr = [1,2,3], arr1 = []; 
arr1 = [...arr];//这里使用ES6中对象扩展符进行操作
console.log(arr1);//结果为:[1,2,3]
arr1[1] = 6;
console.log(arr);//结果仍为:[1,2,3]
console.lo(arr1);//结果仍为:[1,6,3]

filter的使用:

// 取出数组中大于3且小于8的数的数组集合
let arr = [1,2,3,45,6,8,8,4,6,969,52,2,3,2,5,4,1,3,6,2];
var result = arr.filter(n=> {return n>3 && n<8});
或 var result = arr.filter(n=> n>3 && n<8);
注意: 在使用箭头函数时,如果去掉参数括号,而函数体未去掉大括号,内部需要return
       如果函数体的大括号去掉,则不需要return

filter的函数体中return的是条件为true的布尔结果,而filter最终会把所有符合条件的项重新导出成一个数组

Array.from()的使用:

// 输出参数(以数组方式)
let printArgsArr = function(a, b, c){ 
                        let argsArr = Array.from(arguments); 
                        console.log(argsArr)
                    };
printArgsArr(1,2,3) // 结果: [1,2,3]

Array.from()是ES6的语法,用于将类数组转成数组,相关博客:ES6之Array.from()方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值