检查数组中的空元素

时间:2018-08-18 19:48:13

标签: javascript google-apps-script

类似于我最近发布的内容,但不相同:-)

我正在尝试在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()

我已经没有足够的尝试来尝试了,所以任何帮助都会得到很大的帮助!

2 个答案:

答案 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);