javascript - 为什么 Javascript 'every' 函数返回 false?

标签 javascript

我有一个简单的问题,为什么我的函数返回 false,而我期望它返回 true。我查看了 Array.prototype.every 的文档,但似乎仍然找不到它。提前感谢您的帮助。

对于某些上下文,这是名为 arithGeo 的 coderbyte 问题的一部分。如果每个元素之间的差异相同,我正在处理的当前函数应该返回 true。在这里,我希望它返回 true,因为每个元素与下一个元素相距 5。

这是我的函数

var arr = [5, 10, 15];
function isArith(arr){
    var diff = arr[1] - arr[0];
    return arr.every(function(val, ind, col){
      // if statement checks to make sure I stay in bounds.
      if(col[ind + 1] !== undefined){
         var next = col[ind + 1] - val;
         console.log(diff === next   );
         // logging shows the following statement to be true, for every iteration
         return diff === next; 
      }
    });
}


var arith = isArith(arr);
console.log('arith: ', arith) // logs false

最佳答案

在最后一次迭代中,您将返回 undefined,它将被解释为 false。该代码之所以这样做,是因为如果 if 失败(它在最后一个元素上执行),则不会有 return 语句。如果您在 if 之后添加 return true ,它应该可以工作。

关于javascript - 为什么 Javascript 'every' 函数返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25655586/

相关文章:

javascript - 将循环函数的值存储到变量中,javascript

javascript - 让屏幕阅读器读取使用 JavaScript 添加的新内容

javascript - 通过ajax函数将数据回显到表

javascript - 保护客户端逻辑和数据

javascript - 如何使用Font Awesome 5 :after/:before with SVG Javascript?

javascript - Bootstrap 轮播控件不起作用

javascript - 按下键并运行 jquery 函数

javascript - 带有 grunt-angular-templates 的 MEAN 堆栈模板

javascript - 如何使用通用方法通过重用代码来定义 React 组件

javascript - NextJS redux-saga 示例代码不适用于 redux-saga ^1.0.0?