短而通用的方法
如果您想检查任何数组是否具有虚假值(如 false、未定义、null 或空字符串),您可以使用 every() 方法,如下所示:
array.every(function(element) {return !!element;}); // returns true or false
例如:
['23', null, 2, {key: 'value'}].every(function(element) {return !!element;}); // returns false
['23', '', 2, {key: 'value'}].every(function(element) {return !!element;}); // returns false
['23', true, 2, {key: 'value'}].every(function(element) {return !!element;}); // returns true
如果你需要得到第一个虚假值的索引,你可以这样做:
let falsyIndex;
if(!['23', true, 2, null, {key: 'value'}].every(function(element, index) {falsyIndex = index; return !!element;})) {
console.log(falsyIndex);
} // logs 3
如果您只需要检查给定索引的数组的虚假值,您可以这样做:
if (!!array[index]) {
// array[index] is a correct value
}
else {
// array[index] is a falsy value
}