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

Posted

技术标签:

【中文标题】如果数组中的所有值都为真(字符串)并且其中一个值为假(字符串),则如何返回布尔值 true 停止使用 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 【发布时间】:2021-08-27 01:57:39 【问题描述】:

我有一个数组

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

我希望上面返回布尔类型的 false。

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

我希望上面返回布尔类型的 true。 有人可以帮助解决实现这一目标的最有效方法吗?

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

请指教。谢谢。

【问题讨论】:

【参考方案1】:

在这里查看你的答案,你肯定会在这里得到更深入的答案:Check if all values in array are true, then return a true boolean statement (javascript)

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));

【讨论】:

【参考方案2】:

检查.every 的值是否为'true'

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

【讨论】:

感谢您的建议。这在 Chrome 中对我来说非常好。但是 IE 不支持箭头运算符。请问您能就此提出建议吗? ***.com/questions/40216015/… 专业项目的最佳方法:如果需要,使用 Babel 自动将代码转换为 ES5 感谢您的建议。正是我想要的。【参考方案3】:

要在遇到"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"]) );

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

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

【讨论】:

【参考方案4】:

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

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

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

【讨论】:

以上是关于如果数组中的所有值都为真(字符串)并且其中一个值为假(字符串),则如何返回布尔值 true 停止使用 Javascript 进行检查的主要内容,如果未能解决你的问题,请参考以下文章

如果同一位置的所有数组元素都为真,如何获得真

即使两个参数都为真,如果语句返回假?

运算符

Python学习之路8 - 内置方法

Python学习之路8 - 内置方法

python之路 内置函数,装饰器