如何缩短此JavaScript if语句?

时间:2017-04-23 10:48:59

标签: javascript arrays if-statement

我想检查一个数组的所有元素是否与undefined不同。 getFontWeightOfElements().then(fontWieghts => { fontWieghts.forEach(fontWieght => { console.log(fontWeight); }); }); 包含9个元素。

我已经创建了array_main,如下所示:

if

是否有可能以某种方式缩短此// Function checking is there a tie - 0:0 var check_if_tie = function () { if( array_main[0] !== undefined && array_main[1] !== undefined && array_main[2] !== undefined && array_main[3] !== undefined && array_main[4] !== undefined && array_main[5] !== undefined && array_main[6] !== undefined && array_main[7] !== undefined && array_main[8] !== undefined ) { alert("TIE!/REMIS!"); return false; } else { console.log('Continue playing'); return false; } };

4 个答案:

答案 0 :(得分:4)

假设您要迭代array_main数组中的每个元素,可以使用Array#every

如果给定数组中的每个元素都满足true条件,它将返回!== undefined。如果至少有一个元素没有通过它,它将返回false

var array_main = [1,2,3];

var check_if_tie = function() {
  if (array_main.every(v => v !== undefined)) {
    alert("TIE!/REMIS!");
    return false;
  } else {
    console.log('Continue playing');
    return false;
  }
}

check_if_tie();

答案 1 :(得分:3)

有很多方法可以做到这一点。其中一个是检查未定义的索引。



var array_main= [1,3,4,54,5,undefined,4,54]
if(array_main.indexOf(undefined) > -1) {
  alert("TIE!/REMIS!");

} else {
    console.log('Continue playing');

}




答案 2 :(得分:1)

您可以使用接受every方法的callback方法。

array_main.every(function(item){
    return item != undefined;
});

您还可以使用arrow接受的ES6个功能。

array_main.every(item => item!=undefined);

这是一个简短的例子:



var array_main = new Array(9).fill(undefined);
console.log(array_main.every(function(item){
    return item != undefined;
}));




答案 3 :(得分:1)

crime[(crime.Region == 'Stroud') & (crime.Region == 'Gloucester')]