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

时间:2017-06-28 22:49:01

标签: javascript ecmascript-6

除了使用Lodash(可能还有ES6)之外,检查具有所有空值的数组的最佳方法是什么?

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

3 个答案:

答案 0 :(得分:14)

旁注:您的解决方案实际上并未检查全零数组。它只是检查一个全假的数组。 [0, false, '']仍会通过支票。

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

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

every接受一个回调,其中第一个参数是迭代的当前元素。如果元素为null,则回调返回true,否则返回false。如果对于所有元素,回调返回true,则它将计算为true,因此如果数组中的所有元素都为null,则为真。

答案 1 :(得分:0)

解决此问题的另一种方法。加入数组元素并用空格替换左边的','。

var emp = [null, null, null];

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

答案 2 :(得分:0)

您可以Array#every使用_.every()或lodash' 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>
&#13;
class AircraftType(models.Model):
    aircraft_id = models.AutoField(null=False, primary_key=True)
    aircraft_type = models.CharField(max_length=20, null=False, blank=False, unique=True)
    aircraft_description = models.TextField()
&#13;
&#13;
&#13;