4

我有一个 javascript 变量,它是一个数组数组。然后我在它下面有一个变量。像这样:

var cars = [
    ["ford mustang",1955,"red"],
    ["dodge dart",1963,"green"],
    ["pontiac",2002,"green"],
]

var colour = "blue";

现在我需要检查每个数组的第三个值是否都与变量相同colour,或者它们都不同。如果其中一个条件为真,我想执行一些其他代码。所以在上面的例子中,条件为真,因为没有一个值是“蓝色”。如果它们都是“蓝色的”,这也是正确的。

希望我已经说清楚了。

4

4 回答 4

9

JavaScript 中有两个函数用于此目的:

allCarsAreRed = cars.every(function(car) { return car[2] == 'red' })
atLeastOneCarIsRed = cars.some(function(car) { return car[2] == 'red' })
noRedCars = cars.every(function(car) { return car[2] != 'red' })
于 2013-11-12T01:27:29.800 回答
5
var colour = 'blue'
var all = true;
var none = true;
for (var i = 0; i < cars.length; i++) {
   if (cars[i][2] !== colour) {
      all = false;
   } else  {
      none = false;
   }

}
于 2013-11-12T01:23:15.180 回答
3

你需要这样的东西吗?

var cars_length = cars.length;
var all_same = true;
var all_different = true;
for(var i=0; i<cars_length; i++)
{
    if(cars[i].[2] == colour)
    {
       all_same = false;
    }
    else
    {
       all_different = false;
    }
}

if(all_same)
{
   console.log('all same');
}
else
{
   if(all_different)
   {
       console.log('all different');
   }
   else
   {
       console.log('nor all same, nor all different');
   }
}
于 2013-11-12T01:21:04.367 回答
0

看看下面的解决方案

var arr = ["a", "b", "c", "d"]
var allZero = true;
for (var i = 0; i < arr.length; i++) 
{
    if (arr[i][2] != 0) 
    {
        allZero = false;
        break;
    }
}
if (allZero) 
{
    console.log("ALL are Zero");
}
于 2016-04-25T17:10:53.873 回答