首页 > 解决方案 > 特殊数组:如果每个偶数索引包含一个偶数并且每个奇数索引包含一个奇数,则该数组是特殊的

问题描述

这段代码有什么问题?它显示错误。这应该是真的。

function isSpecialArray(arr) {
    for(i=0; i<arr.length; i++){
        
        return ((arr[i % 2 == 0]) % 2 == 0) && ((arr[i % 2 !==0]) % 2 !== 0)
    }   
}

console.log(isSpecialArray([2, 7, 4, 9, 6, 1, 6, 3])) // false??

标签: javascriptarraysloopslogical-operators

解决方案


一旦发现第一个违反规则的元素,您就可以简化代码并避免不必要的循环。

使用for循环

function isSpecial(arr) {
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] % 2 !== i % 2) return false
  }
  return true;
}

使用Array.prototype.every

function isSpecial(arr) {
  return arr.every((item, index) => item % 2 === index % 2);
}

推荐阅读