将多个&&条件合并为1

时间:2018-10-04 21:51:43

标签: javascript

Javascript中是否有更好的方法可以对我想要的多个元素进行空检查

#if CHARKHUNE
    import charkhunePayment
#endif

因此,总共我最初将14个变量设置为null,并且如果它们全部为“ null”,我想仅对它们应用一种解决方案。

a=null; b=null;....n=null;

有没有更好的方法检查null,因为如果我们添加了更多的数组,这可能会很麻烦 谢谢!

2 个答案:

答案 0 :(得分:3)

创建一个数组数组,使用Array.every()对其进行迭代,如果所有项目值均为null,请执行以下操作:

if([a, b, c, ... n].every(a => a === null)) {
    // set some field to false
}

答案 1 :(得分:1)

如果您不熟悉JS,在JS中,值可以是“ falsey”或“ truthy”。如果if / while / for的值假设为“真实”,则将运行它们。 JS中很少有“假”值,其余的被认为是“真实的”。假值是:

  • undefined
  • 0
  • NaN
  • null
  • ''
  • false

(我相信我都知道了。想想“六个罪过”:其中有六个)

因此,请检查以下代码及其结果:

if(0) console.log('yay') // won't run
if(false) console.log('yay') // won't run
if(null) console.log('yay') // won't run
if('') console.log('yay') // won't run
if(NaN) console.log('yay') // won't run


if([]) console.log('yay') // will run
if('0') console.log('yay') // will run

这是一条漫长的说法,如果您想根据数组是否为空来做某事,请尝试以下操作:

let arr = [1,2,3,4]
if(arr.length){
  //do stuff if array is not empty
} else {
   // do stuff if array is empty
}

现在要真正为您解决问题,请执行以下操作:

const masterArray = [a, b, c, d, ... , n];
let length = 0;
masterArray.forEach(subarr=>{
  length += subarr.length;
})

//At this point, if no array had any elements, length would be 0
if(length === 0){
  // do stuff
}