forEach()的意外输出

时间:2019-08-14 02:26:05

标签: javascript node.js web

我期望在条件为条件的数组arr上使用forEach的1,2,3,4形式,但得到1,2,3。为什么会这样呢?在没有条件的情况下对数组进行常规forEach可获得预期的输出:1、2、3、4

let arr = [1, 2, 3, 4];
arr.forEach(function(i, x, y) {
  if (i in y) {
    document.write(i);
  }
});

1 个答案:

答案 0 :(得分:0)

因为in是基于索引而不是值。由于索引从0开始,因此4比最大值大1。

let arr = [0, 1, 2, 3];
arr.forEach(function(i, x, y) {
  if (i in y) {
    document.write(i);
  }
});