关于Array,Map及Set的遍历方法

1.Array类型的遍历:

Array类型可以采用下标的方法进行遍历,也可以采用for ...of,for... in,forEach方法进行遍历。

let arr=['兄','弟','你','真','帅'];
let len=arr.length;
for (let i=0;i<len;i++)
{
    console.log(arr[i]);
}
for(let i in arr){
    console.log(i);//输出的是索引,不是数组元素
    console.log(arr[i]); //输出的是数组元素
}
for(let i of arr){
    console.log(i);//输出的是数组元素
}
arr.forEach((item, idnex, array) => {
    console.log(item);//遍历元素
    console.log(idnex);//遍历索引
    console.log(array);//遍历数组
});

注意for of和for in遍历中i所代表的含义是不一样的。

Array可以采用下标进行循环遍历,Map和Set就无法使用下标。为了统一集合类型,ES6标准引入了iterable类型,Array、Map、Set都属于iterable类型。而对象Object不具备Symbol.iterator属性,所以无法被for ...of遍历。

故Array、Map、Set均可使用for ...of遍历。

2.Map、Set的for ...of遍历:

let map1 = new Map([[ 'ipad', 3999 ],[ 'ipad', 3999 ],
[ 'shoes', 999 ],[ 'phone', 99 ],[ 'pen', 9 ]])
console.log(map1);
for (let i of map1){
    console.log(i);//[ 'ipad', 3999 ]    [ 'ipad', 3999 ]
                    //[ 'shoes', 999 ]    [ 'phone', 99 ]    [ 'pen', 9 ]
    console.log(i instanceof Array);//true
                }
let set =new Set([11,22,33,44,55,55,66]);
for(let i of set){
    console.log(i+=1);//12  23 34 45 56 67
}

for (let i of map1)中i的结构为数组。

3.set和map的forEach遍历:

map1.forEach((value,key,map) => {
    value+=1;
    console.log(value);//4000 1000 100 10 
});
//Map的回调函数参数依次为value、key和map本身
set.forEach((element,sameelement,set) => {
    console.log(element); //11 22 33 44 55 66
});
//Set与Array类似,但Set没有索引,因此回调函数的前两个参数都是元素本身

map1和set定义见上一段代码。

4.解构后使用数组的遍历方法:

console.log([...map1]);
for(let i in [...map1]){
    console.log([...map1][i]);
}
for (let i=0;i<[...map1].length;i++){
    console.log([...map1][i]);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值