我有一个数组,如果该数组只包含空值,我想要一个简单的非循环测试.空数组也计为只有空值.
我想另一种描述问题的方法是测试数组是否至少有一个非空值.
所以:
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
值得注意的是,在已检查的数组中存在可能的问题.