javascript - 为什么循环会在中间停止?

标签 javascript

我正在尝试解决幸运七人制问题,如果数组中的任何 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/

相关文章:

javascript - 使用参数重新加载父页面

javascript - 为什么 ~-(2 + "2") 是 21?

javascript - 获取输入值,但剥离 html 语法

javascript - 在具有权重/偏差的范围之间生成随机数?

javascript - 使用 Native javascript 从 JSOn 中提取字段

javascript - 通过 Node 自动化 Webpack 项目设置

javascript - Event.target 在 React 类型按钮中返回未定义

javascript - 父级 Div 保持最高子级的高度

javascript - AngularJS HTML 中未应用 CSS 样式

javascript - 多日期选择器 : Disable dates from a list