如何检查数组中的所有元素是否为空?

15

除了使用Lodash和ES6之外,检查所有空值数组的最佳方法是什么?

var emp = [null, null, null];
if (_.compact(emp).length == 0) {
  ...
}

1
你将根据什么标准来确定“最佳”? - RobG
3个回答

34

副注:您的解决方案实际上并没有检查全为空数组,它只是检查了一个全否定数组。 [0, false, ''] 仍然可以通过检查。

您可以使用 Array#every 方法来检查数组的每个元素是否满足特定条件:

const arr = [null, null, null];
console.log(arr.every(element => element === null));

every接受一个回调函数,其中第一个参数是当前迭代的元素。回调返回true表示该元素为null,false表示不是。如果对于所有元素,回调都返回true,则结果为true,因此如果数组中所有元素都为null,则结果为true。


2
你可以使用 Array#every 或 lodash 的 _.every()_.isNull() 一起使用:

var emp = [null, null, null];

var result = emp.every(_.isNull);

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>


1
另一种解决方法是将数组元素连接起来,并用空格替换掉剩余的“,”。

var emp = [null, null, null];

if(emp.join(',').replace(/,/g, '').length === 0) {
 console.log('null');
}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接