为了账号安全,请及时绑定邮箱和手机立即绑定

使用“for of loop”迭代数字数组

使用“for of loop”迭代数字数组

慕森王 2021-09-17 10:14:36
我想迭代下面的数组:var a=[1,2,3,4,5,6,0,11]for(let value of a){    console.log(a[value-1])}我得到如下输出。我无法找到为什么 0 和 11 被打印为未定义。123456undefinedundefined
查看完整描述

1 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

我想这可能是一个简单的误解for...of。


在每次迭代中,您都试图访问 index 处的项目a[value-1]。您的第一个undefined值来自0您尝试访问的值a[0-1], 或a[-1]。第二个来自 value 11,你试图访问的地方a[11-1],或者a[10]。


您的数组在 index-1和 index处没有项目10,因此它们都是undefined.


我在您的代码中添加了一些日志记录以帮助上述解释:


var a = [1, 2, 3, 4, 5, 6, 0, 11]

for (let value of a) {

  console.log(`value is ${value}`);

  console.log(`Getting item at a[${value-1}]`);

  console.log(`Item is ${a[value - 1]}`);

  console.log(`-----`);

}

.as-console-wrapper { max-height: 100vh !important; }


查看完整回答
反对 回复 2021-09-17
  • 1 回答
  • 0 关注
  • 216 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信