我要求在有条件的基础上返回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
如何找到虚假和真实的?
答案 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));