我期望在条件为条件的数组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);
}
});
答案 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);
}
});