我有一个数组,如果该数组只包含空值,我想要一个简单的非循环测试.空数组也计为只有空值.
我想另一种描述问题的方法是测试数组是否至少有一个非空值.
所以:
- Good: [ null,null,null ]
- Good: []
- Bad: [ null,3,null ]
解决方法
我能想到的最简单的方法很简单:
- Array.prototype.isNull = function (){
- return this.join().replace(/,/g,'').length === 0;
- };
- [null,null].isNull(); // true
- [null,null].isNull(); // false
这将获取数组,将该数组的元素连接在一起(不带参数join()将数组元素与字符连接起来)返回一个字符串,用空字符串替换该字符串中的所有字符(使用正则表达式)然后测试长度是否等于0.所以:
- [null,null].isNull()
加入到一起给:
- ','
是否替换了所有逗号(使用正则表达式后面的g标志),给出:
- '3'
测试是否其长度等于0,给出:
- false
值得注意的是,在已检查的数组中存在可能的问题.