Javascript将多个条件组合为1

时间:2018-09-19 19:57:34

标签: javascript

在Javascript中是否有更好的方法来检查多个元素的长度。我想检查以下数组的长度是否大于0,我这样做:

a=[]; b=[1,2,3]; c=[db, gf, gf]; d=[]; e=[1,2,3]; f=[db, gf, gf]; g=[44,56,77]; 
h=[1,2,3]; i=[db, gf, gf];j=[]; e=[1,2,3]; k=[db, gf, gf]; l=[44,56,77]; 
m=[1,2,3]; n=[db, gf, gf]

因此,总共有14个用于比较条件的比较值数组,如果length === 0,我只想对所有它们应用一种解决方案。

if (a.length === 0 || b.length === 0|| c.length === 0|| d.length < 0|| e.length === 0|| f.length === 0|| g.length === 0|| h.length === 0|| i.length === 0|| j.length === 0|| k.length === 0|| l.length === 0|| m.length === 0|| n.length === 0){
// set some field to false
}

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

4 个答案:

答案 0 :(得分:1)

将所有数组放入另一个数组,然后使用Array#some

if ([a, b, c, d, e, f, g, j, i, j, k, l, m, n].some(x => x.length > 0)) {
    // do something
}

如果要测试所有数组是否正确,而不是仅对其中任何一个,请使用every而不是some

答案 1 :(得分:1)

如果将所有数组都放在另一个数组中,则可以使用array.every()

a=[]; b=[1,2,3]; c=['db', 'gf', 'gf']; d=[]; e=[1,2,3]; f=['db', 'gf', 'gf']; g=[44,56,77]; 
h=[1,2,3]; i=['db', 'gf', 'gf'];j=[]; e=[1,2,3]; k=['db', 'gf', 'gf']; l=[44,56,77]; 
m=[1,2,3]; n=['db', 'gf', 'gf']

let valid = [a, b, c, d, e, f, g, h, i, j, k, l, m, n].every(arr => arr.length > 0)
// nope some emtpies
console.log(valid)

// add something to the empty arrays
j.push(1)
d.push(2)
a.push("df")

valid = [a, b, c, d, e, f, g, h, i, j, k, l, m, n].every(arr => arr.length > 0)
// now valid
console.log(valid)

您可能会考虑将所有这些数据放在一个数组或对象中;它将使这种事情变得更容易,并有助于组织数据。

答案 2 :(得分:1)

everysome是您的朋友。只需将您的值放入自己的数组中,然后使用some进行检查:

let a = [], b = [1,2,3], c = ['db', 'gf', 'gf'], d = [], e = [1,2,3], f = ['db', 'gf', 'gf'],
    g = [44,56,77], h = [1,2,3], i = ['db', 'gf', 'gf'], j = [], k = ['db', 'gf', 'gf'], 
    l = [44,56,77], m = [1,2,3], n = ['db', 'gf', 'gf'];
    
if ([a, b, c, d, e, f, g, h, i, j, k, l, m, n].some(arr => arr.length === 0)) {
  console.log('found empties');
} else {
  console.log('no empties');
}

if ([a, b, c, d, e, f, g, h, i, j, k, l, m, n].some(arr => arr.length > 5)) {
  console.log('found large');
} else {
  console.log('no large');
}

答案 3 :(得分:-1)

这是代码

for (var i = 65; i <= 78; i++) {
    if(window[String.fromCharCode(i)] < 0){
        // write code here
        // break;
    }
}