类似于我最近发布的内容,但不相同:-)
我正在尝试在GAS中测试数组是否包含任何空值。 includes()
似乎不受支持,因此我一直在尝试使用索引,但失败了。我的测试代码如下,其中空元素位于7之前
var e = [1,2,3,4,2,4,,7];
var x = 0;
if (e.indexOf() ==-1){
var x = 'No blanks';
}
但是无论我尝试什么,它总是会失败。我已经尝试过indexOf("")
,indexOf('')
和indexOf()
。
我已经没有足够的尝试来尝试了,所以任何帮助都会得到很大的帮助!
答案 0 :(得分:2)
您拥有的是一个备用阵列。缺少的元素没有空字符串,根本就没有。由于缺少的元素也不可枚举,因此在使用indexOf
之类的数组方法时也不会显示该元素。您可能会检查键数是否等于数组的length
:
var e = [1,2,3,4,2,4,,7];
var x = Object.keys(e).length === e.length
? 'OK!'
: 'Blank element detected';
console.log(x);
// constrast with a normal array:
e = [1,2,3,4,2,4,7];
x = Object.keys(e).length === e.length
? 'OK!'
: 'Blank element detected';
console.log(x);
答案 1 :(得分:0)
要查找所有空元素的键(如果有):
var e = [1,,3,4,2,,7];
var o = Object.keys(e);
m = [];
o.forEach(function(e,i){
if(i>0 && e-o[i-1]>1){
m.push(e-1)
}
})
console.log(m);
console.log(m.length);