如何在数组中找到虚假值?

时间:2018-05-25 09:36:20

标签: javascript

我要求在有条件的基础上返回true或false。如果我的数组包含empty, null, undefined,""我需要返回false。其他都是。

有没有简单而正确的回归方式?

以下是我要找的内容:

var ar = ["apple", '', undefined, null ]; //false
var ar = ["apple", 'Orange', undefined, null ]; //false
var ar = ["apple", 'Orange', "gova", null ]; //false

var ar = ["apple", 'Orange', "gova", "mango" ]; //true

如何找到虚假和真实的?

3 个答案:

答案 0 :(得分:4)

您可以使用Array.prototype.some检查其中是否至少有一个假元素。然后否定结果应该能得到你想要的东西。



var ar = ["apple", 'Orange', "gova", null ]; //false
console.log(!ar.some(t => !t));
ar = ["apple", 'Orange', "gova", "mango" ]; //true
console.log(!ar.some(t => !t));




答案 1 :(得分:3)

!ar.some(element => !element);

说明:

  

some()方法测试数组中是否至少有一个元素   通过由提供的函数实现的测试。

表达式!element将值强制转换为布尔值,因此虚假元素变为true,而真实元素变为false

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some

答案 2 :(得分:0)

您可以使用Boolean检查每个项目作为所有truthy元素的回调。



function check(array) {
    return array.every(Boolean);
}

var array = [["apple", '', undefined, null], ["apple", 'Orange', undefined, null], ["apple", 'Orange', "gova", null ], ["apple", 'Orange', "gova", "mango"]];

console.log(array.map(check));