如果数组中的所有值都为真(字符串)并且其中一个值为假(字符串),则如何返回布尔值 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 进行检查的主要内容,如果未能解决你的问题,请参考以下文章