Javascript If/Else语句和意外的字符串连接

Javascript If/Else语句和意外的字符串连接,javascript,loops,for-loop,ecmascript-6,Javascript,Loops,For Loop,Ecmascript 6,新手程序员在这里 我目前正在进行一个项目,该项目将整数输入到文本字段中,但我决定通过for循环运行数组,该循环将每个项推入一个更适合用户的字符串中。但是,for循环在console.log中显示以下内容: 2 + 1 + 4 + 1 + 有点澄清-这是一个骰子辊。这个click事件的for循环段在下面,我不知道如何指定连接最后一个数组项,使其不包含“+”而包含“=” let diceString = ''; for (let i = 0; i <= d4Array.length; i+

新手程序员在这里

我目前正在进行一个项目,该项目将整数输入到文本字段中,但我决定通过for循环运行数组,该循环将每个项推入一个更适合用户的字符串中。但是,for循环在console.log中显示以下内容:

2 + 1 + 4 + 1 + 
有点澄清-这是一个骰子辊。这个click事件的for循环段在下面,我不知道如何指定连接最后一个数组项,使其不包含“+”而包含“=”

let diceString = '';
for (let i = 0; i <= d4Array.length; i++) {
  if(i == d4Array.length) {
    diceString += d4Array[i] + ' =';
    break; 
  }
  else {
    diceString += d4Array[i] + ' + ';
  }
  console.log(diceString);   
}
let diceString='';

for(设i=0;ifor循环在旧代码中迭代5项。
d4Array.length
将为4,但由于索引从0开始,它将在我到达4(0,1,2,3,4)之前迭代5项。这就是为什么最后一项返回未定义。您可以通过替换
let i=0;i
(i==d4Array.length)来修复此问题
在for循环中永远不会为真…
i==d4Array.length-1
在上一次迭代中将为真i==d4Array.length-1现在在日志中忽略了最后一个骰子结果。您已经离开并将
i
更改为
我想您应该使用“join”如果
i==d4Array.length
,则
d4Array[i]
将始终是一个越界异常,因为数组是基于偏移量的(从0开始)@没问题。这通常是用reduce方法完成的。研究一下可能会很有趣:将MDN网站作为书签,因为它是一个很好的资源。如果你只是在学习js,我推荐它也是很好而且免费的。;)