我正在尝试解决幸运七人制问题,如果数组中的任何 3 个连续数字总和为 7,则需要返回 true。我知道有更好的方法来做到这一点,但我想使用 .splice
这里。由于某种原因,循环在中间停止并且不检查最后六位数字。
function seven(arr) {
for(var i=0; i<arr.length; i++) {
if((arr[0] + arr[1] + arr[2]) == 7) {
document.body.innerHTML = “true”;
}
arr.splice(0,1);
document.body.innerHTML = “false”;
}}
seven([1,5,7,1,5,2,1,5,3,1,5,1]);
最佳答案
使用 while 循环。
function seven(arr) {
while(arr.length > 2) {
if((arr[0] + arr[1] + arr[2]) == 7) {
document.body.innerHTML = "true";
}
arr.splice(0,1);
document.body.innerHTML = "false";
}
}
seven([1,5,7,1,5,2,1,5,3,1,5,1]);
如果有 2 个元素,循环就会中断,但会在数组中存在 2 个以上元素期间运行。
关于javascript - 为什么循环会在中间停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46844346/