猿问

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

我想迭代下面的数组:


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


for(let value of a)

{

    console.log(a[value-1])

}

我得到如下输出。我无法找到为什么 0 和 11 被打印为未定义。


1

2

3

4

5

6

undefined

undefined


慕森王
浏览 217回答 1
1回答

慕妹3146593

我想这可能是一个简单的误解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; }
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答