判断数组是否为因子链

我很想知道为什么这段代码没有通过某些测试。它有意不使用任何 ES6 代码。


这是提示:


*因子链是一个数组,其中每个前一个元素都是下一个连续元素的因子。下面是一个因子链:


[3, 6, 12, 36]

// 3 is a factor of 6

// 6 is a factor of 12

// 12 is a factor of 36

创建一个确定数组是否为因子链的函数。*


我的代码:


function factorChain(arr) {

    var isChain = true;

  

  for (var i = 0; i < arr.length; i++) {

    if ((arr[i + 1] / arr[i]) !== Math.floor(arr[i + 1] / arr[i])) {

      isChain = false;            

    }

  }


  return isChain;

}


慕婉清6462132
浏览 92回答 1
1回答

ITMISS

您应该循环arr.length - 1访问当前索引处的元素和每次迭代中下一个索引处的元素。使用取余运算符检查一个数字是否是另一个数字的因数可以提高代码的清晰度。此外,无需将结果分配给变量;第一次条件不匹配时简单地返回 false 将退出函数。function factorChain(arr) {&nbsp;&nbsp; for (var i = 0; i < arr.length - 1; i++) {&nbsp; &nbsp; if (arr[i+1] % arr[i] != 0) {&nbsp; &nbsp; &nbsp; return false;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; }&nbsp; }&nbsp; return true;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript