如果数组中的所有数字元素都足够,请检入JavaScript

时间:2015-07-23 18:41:22

标签: javascript arrays

我有一个像这样定义的数组:

var numbers = [11, 12, 13, 14, 15, 16, 17, 18];

我想检查这个数组中的所有数字是否都大于10,而我只想要一个输出。

我试过了:

for (var i = 0; i < numbers.length; i++) {
     if (numbers[i] > 10) {
         console.log("Valid");
     } else {
         console.log("Not valid");
     }
}

这给了我多个输出,因为它在循环内部,但我只想要一个有效的语句。

PS:抱歉这个noob问题。

4 个答案:

答案 0 :(得分:4)

这个问题有很多解决方案。最简单的可能是创建一个函数:

var numbers = [11, 12, 13, 14, 15, 16, 17, 18];

function allNumbersLessThan10() {
  for (var i = 0; i < numbers.length; i++) {
    if (numbers[i] > 10) {

      return false
    }
  }

  return true;
}

console.log(allNumbersLessThan10());

如果任何数字大于10,则所有数字都不能小于10,因此我们返回false

如果我们完成了循环中所有数字的评估,而我们还没有找到一个大于10的数字,那么所有数字必须小于10,所以我们返回true

答案 1 :(得分:4)

我个人更喜欢Array.prototype.every()

此函数为每个元素执行一次提供的回调,直到回调返回false。如果发生这种情况,every()函数将返回false

以下是一个例子:

var numbers = [11, 12, 13, 14, 15, 16, 17, 18];

function checkElements(element, index, array) {
  return (element > 10);
}

if (numbers.every(checkElements)) console.log('Valid');
else console.log('Not valid');

详细了解every() function

答案 2 :(得分:4)

正好在some()

的文档中
function isBiggerThan10(element, index, array) {
  return element > 10;
}
[2, 5, 8, 1, 4].some(isBiggerThan10);  // false

所以在你的情况下,你需要扭转这种逻辑。

function isSmallerThan10(element, index, array) {
  return element < 10;
}
[2, 5, 8, 1, 4].some(isSmallerThan10);  //true

其他选项是使用every()

function isBigEnough(element, index, array) {
  return element >= 10;
}
[12, 5, 8, 130, 44].every(isBigEnough);   // false
[12, 54, 18, 130, 44].every(isBigEnough); // true

答案 3 :(得分:-2)

试试这个:

numbers=["11","12","13","14","15","16","17","18"];

 if (numbers[0] > 10 && numbers[1] >10 && numbers[2] > 10 && numbers[3] >10 && numbers[4] > 10 && numbers[5] >10 && numbers[6] > 10 && numbers[7] >10) {
     console.log("Valid");
 } else {
     console.log("Not valid");
 }

没有迭代,如果以不好的方式使用会损坏设备的使用寿命。