JS forEach、for...in 、for...of 的区别

forEach

myArray.forEach(function (value)){
    console.log(value)
}
// 无法中途跳出forEach循环,break和return 无效

for...in

for...in 可遍历数组的键名
for(var index in myArray){
    console.log(myArray[index])
}

// for...in 的几个缺点
// 数组的键名是数字但是for...in循环是以字符串作为键名,"0","1","2"等
// 某些情况,for...in 循环会以任意顺序遍历键名
// 总之for...in 是为遍历对象设计的,不适用于遍历数组

for...of

for(let value of myArry){
    console.log(value)
}

// for...of没有for...in的缺点
// 不同于forEach,它可以以break、continue、return配合使用
// 提供了遍历所有数据结构的统一操作接口


entries()用于遍历[键名,键值]组成的数组 map结构默认此方法

key() 用于遍历所有键名

values() 用于遍历所有键值 

let arr = ['a', 'b', 'c']
for (let pair of arr.entries()) {
    console.log(pair)
}

// [0, 'a']
// [0, 'b']
// [0, 'c']

for (let pair of arr.keys()) {
    console.log(pair)
}

// [0]
// [1]
// [2]

for (let pair of arr.values()) {
    console.log(pair)
}

// ['a']
// ['b']
// ['c']

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值