javascript - 确定数组是否为因子链

标签 javascript arrays factors

我很想知道为什么这段代码无法通过一些测试。它故意不使用任何 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;
}

最佳答案

当您在每次迭代中访问当前索引处的元素和下一个索引处的元素时,您应该循环到 arr.length - 1 。使用余数运算符检查一个数字是否是另一个数字的因子可以提高代码的清晰度。此外,不需要将结果分配给变量;只需在第一次条件不匹配时返回 false 即可退出该函数。

function factorChain(arr) { 
  for (var i = 0; i < arr.length - 1; i++) {
    if (arr[i+1] % arr[i] != 0) {
      return false;            
    }
  }
  return true;
}

关于javascript - 确定数组是否为因子链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63126324/

相关文章:

ruby - 单个哈希的多变量赋值

asp.net - 哪种框架比 Ja​​vaScript 更适合与 ASP.NET 一起使用?

javascript - 如何正确设置标签和文本框填充?

javascript - 修正了一些语法

javascript - 根据过滤后的对象数组中的数据创建新的对象数组

c# - 获取数字的因子

javascript - 阻止了源为 "file://"的框架访问跨域框架

php - 需要 PHP 代码来从数据库中选择大于 5 但不大于 15 的数字(意味着所有大于 5 的数字,不包括 15)?

factors - 找出一个数的两个因数,它们彼此相似或接近

c - 计算从 1 到 n 的所有偶数平方的最快方法?