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

为什么forEach方法多出个undefine?

代码如下

var arr = [20,3,8,11,18];
arr.forEach(function(x,index,b){
  console.log(x+","+index+"$"+(b === arr));
});

在firebug上运行结果如下,哪位大神帮忙看一下什么缘故,谢了

http://img1.sycdn.imooc.com//5a1031c60001c49707110607.jpg


正在回答

5 回答

语句没错,问题可能不是foreach出现的

0 回复 有任何疑惑可以回复我~

你好,你这个undefined并不是因为代码而输出的。是类似以下这种情况的原因。https://img1.sycdn.imooc.com//5c0cfbe30001c5ce06640258.jpg

0 回复 有任何疑惑可以回复我~

你看到你的代码了没有没?18后面还有个,号这个逗号就代表后面还有个空值。所以就多个

undefine,你这个数组的长度是6


0 回复 有任何疑惑可以回复我~

你随便console.log('a')最后也会出现一个underfined的


0 回复 有任何疑惑可以回复我~

应该下标减一。

1 回复 有任何疑惑可以回复我~
#1

慕UI3524263 提问者

不是很懂,是在参数里减一还是函数体里减一? 具体代码该怎么改,希望能写一下,多谢了 这是 javascript深入浅出 课程里数组章节数组方法一课中老师给的例子之一,他的课件上只显示前五行,而我运行后多出一行undefined,很懵
2017-11-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么forEach方法多出个undefine?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信