Javascript some()函数不适用于&&;操作人员

Javascript some()函数不适用于&&;操作人员,javascript,operators,Javascript,Operators,我尝试将some()函数与&&运算符一起使用,但始终返回false,即使这两个条件都在数组中。 例如: if (acciones.some(a => a.accionID == 7 && a.accionID == 8)) { return true; } else { return false; } 每次调用some回调时,您都会检查一个特定的accionID。一个accionID不能同时是==7和==8。任何给定的accionID将是7或8

我尝试将some()函数与&&运算符一起使用,但始终返回false,即使这两个条件都在数组中。 例如:

  if (acciones.some(a => a.accionID == 7 && a.accionID == 8)) {
    return true;
  } else {
    return false;
  }

每次调用
some
回调时,您都会检查一个特定的
accionID
。一个
accionID
不能同时是
==7
==8
。任何给定的
accionID
将是
7
8

如果要查看所有
帐户是否都有
7
8
accionID
,请将
每一个
|
一起使用:

if (acciones.every(a => a.accionID == 7 || a.accionID == 8)) {
// ----------^--------------------------^
if (acciones.some(a => a.accionID == 7 || a.accionID == 8)) {
// ----------^-------------------------^
如果您想查看
账户中的任何账户是否有
账户ID
7
8
,请将
部分
|
一起使用:

if (acciones.every(a => a.accionID == 7 || a.accionID == 8)) {
// ----------^--------------------------^
if (acciones.some(a => a.accionID == 7 || a.accionID == 8)) {
// ----------^-------------------------^
如果
acciones
中至少有一个条目,其中
accionID
是(比如)
6
,则
每次检查都将为假,
部分检查将为真


由于
some
every
已返回布尔值,因此不需要:

if (acciones.every(a => a.accionID == 7 || a.accionID == 8)) {
    return true;
} else {
    return false;
}
只用

return acciones.every(a => a.accionID == 7 || a.accionID == 8);
一般来说,如果你发现自己在写作:

if (x) {
    return true;
} else {
    return false;
}
if (x) {
    return false;
} else {
    return true;
}
然后:

  • 如果
    x
    已经是一个布尔值,您只需

    return x;
    
  • 如果
    x
    不一定是布尔值(具体来说,返回布尔值很重要),您可以使用
    使其成为布尔值的习惯用法:

    return !!x;
    
  • 同样,如果你发现自己在写作:

    if (x) {
        return true;
    } else {
        return false;
    }
    
    if (x) {
        return false;
    } else {
        return true;
    }
    
    你总是可以这样写

    return !x;
    

    相反。

    accionID
    不能同时是
    7
    8
    您是否打算将
    |
    用于“或”?至少相关:顺便说一句,如果(…)返回true,不要执行
    ,否则返回false,只需返回…