在js开发中,经常会用到for...in for...of,如何区分使用?

1 篇文章 0 订阅

在js开发中,经常会用到for...in  for...of,如何区分?

for...in循环读取键名,for...of循环读取实体或键值

  • 遍历数组
const arr = ['red', 'green', 'blue']

// 读取实体
for (let pair of arr.entries()) {
  console.log(pair)
}
// [0,"red"]
// [1,"green"]
// [2,"blue"]

for (let [index, item] of arr.entries()) {
  console.log(index, item)
}
// 0,red
// 1,green
// 2,blue

// 读取值
for(let v of arr) {
  console.log(v); 
}
// red
// green
// blue

// 读取Key
for(let k in arr) {
  console.log(k); // 0 1 2
}
// 0
// 1
// 2
  •  遍历对象
let es6 = {
  edition: 6,
  committee: "TC39",
  standard: "ECMA-262"
}

// 读取实体
for (let entry of Object.entries(es6)) {
  console.log(entry)
}
// ["edition",6]
// ["committee","TC39"]
// ["standard","ECMA-262"]

// 读取key
for (let k in es6) {
  console.log(k);
}
// edition
// committee
// standard

// 不能读取
for (let v of es6) {
  console.log(v)
}
// TypeError: es6[Symbol.iterator] is not a function

// 读取key
for (let key of Object.keys(es6)) {
  console.log(key + ': ' + es6[key])
}
// edition: 6
// committee: TC39
// standard: ECMA-262

// 读取key,value
for (let [key, value] of Object.entries(es6)) {
  console.log(`[${key},${value}]`)
}
// ["edition",6]
// ["committee","TC39"]
// ["standard","ECMA-262"]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值