如果数组中的所有值均为真(字符串)并且其中一个值为假(字符串),如何 return 布尔值为真停止使用 Javascript 进行检查

How to return a boolean true if all the values in an array are true (strings) and if one of the value is false(string) stop checking using Javascript

我有一个数组

var myarr = ["true","false","true"];

我想要上面的return布尔类型的false。

var myarr = ["true","true","true"];

我希望上面的布尔类型 return 为真。 有人可以帮助实现这一目标的最有效方法是什么吗?

是否最好先将字符串转换为另一个数组中的布尔值,然后再使用 .every()?

请指教。谢谢。

检查 .every 值是否为 'true'

return myarr.every(val => val === 'true');

在这里检查你的答案,你肯定会在这里得到更深入的答案:

let arr1 = ['true', 'false', 'true'],
    arr2 = ['true', 'true', 'true'];

let checker = arr => arr.every(v => v === 'true');

console.log(checker(arr1));
console.log(checker(arr2));

要在遇到 "false" 字符串时停止处理,请使用 Array.prototype.some

const allTrue = arr => !arr.some(entry => entry === 'false');

console.log("expect false true:");
console.log( allTrue(["true","false","true"]) );
console.log( allTrue(["true","true","true"]) );

如果您需要检查 'true' 个字符串,请在 some 参数中使用 !== 运算符:

const allTrue = arr => !arr.some(entry => entry !== 'true');

您可以像下面这样使用,因为 Array.every 会迭代数组中存在的每个元素,即使其中存在 false

const result = myarr.includes('false'); // true

const result2 = myarr.some((v) => v === 'false'); //  true