在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
}
有没有更好的方法来检查长度,因为如果我们添加了更多的数组,这可能会很麻烦 谢谢!
答案 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)
every
和some
是您的朋友。只需将您的值放入自己的数组中,然后使用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;
}
}