javascript - 为什么这段代码返回 true 而不是 false

标签 javascript arrays

这是代码:

const str = "asdfcvb";
const result = str.split("").every((e) => {
    return e==='a'||'b'});
console.log(result);

我期望 str.split("") 返回一个数组,并且每个方法都会检查数组中的每个元素是否等于“a”或“b”,这应该返回 false,但它返回 true

最佳答案

因为 e==='a'||'b' 表示 ((e==='a')||'b')

e !== 'a'情况下,它将返回'b',这在Javascript中是真实的,所以every方法从每一项中获得真值,然后结果将为真。

您可以使用以下方法来实现您想要的

const result = str.split("").every((e) => {
    return (e==='a') || (e==='b')
});

关于javascript - 为什么这段代码返回 true 而不是 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70648501/

相关文章:

java - 在 Java 中,如何测试数组是否包含相同的值?

Javascript 查找缺失的选择值

javascript - 异步 http 请求服务

javascript - 编写一个函数,将对象数组作为参数并返回对象名称数组。然后,将该数组记录到控制台

c - 空间究竟如何与 scanf 一起工作?

c++ - 为什么数组索引在此程序中不显示交换行为?

java - 一维数组遇到问题

javascript - JQuery:在前一个元素上更改的文本消失

javascript - 带有自定义图标的传单簇标记

javascript - 页面上的事件触发的 "turn off"javascript 函数的最佳方法是什么