some() 函数不适用于 && 运算符
some() function is not working with && operator
我正在尝试将 some() 函数与 && 运算符一起使用,但总是 return 错误,即使这两个条件都在数组中。
例如:
if (acciones.some(a => a.accionID == 7 && a.accionID == 8)) {
return true;
} else {
return false;
}
您在每次调用 some
回调时检查一个特定的 accionID
。那个 accionID
不能 同时是 == 7
和 == 8
。任何给定的 accionID
将是 7
或 8
.
如果您想查看是否所有 acciones
都具有 7
或 8
的 accionID
,请使用 every
和 ||
:
if (acciones.every(a => a.accionID == 7 || a.accionID == 8)) {
// ----------^--------------------------^
如果您想查看 acciones
的 任何 是否具有 7
或 8
的 accionID
,请使用some
与 ||
:
if (acciones.some(a => a.accionID == 7 || a.accionID == 8)) {
// ----------^-------------------------^
如果 acciones
中至少有一个条目 accionID
是(比如)6
,则 every
检查将为假,并且 some
检查将为真。
因为some
和every
已经return一个布尔值,所以不需要:
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;
}
然后:
如果x
已经是一个布尔值,你可以只做
return x;
如果 x
不一定是布尔值(重要的是你 return 是一个布尔值,特别是),你可以使用 !!
习惯用法来实现它一个布尔值:
return !!x;
同样,如果您发现自己正在写作:
if (x) {
return false;
} else {
return true;
}
你总是可以写成
return !x;
相反。
我正在尝试将 some() 函数与 && 运算符一起使用,但总是 return 错误,即使这两个条件都在数组中。 例如:
if (acciones.some(a => a.accionID == 7 && a.accionID == 8)) {
return true;
} else {
return false;
}
您在每次调用 some
回调时检查一个特定的 accionID
。那个 accionID
不能 同时是 == 7
和 == 8
。任何给定的 accionID
将是 7
或 8
.
如果您想查看是否所有 acciones
都具有 7
或 8
的 accionID
,请使用 every
和 ||
:
if (acciones.every(a => a.accionID == 7 || a.accionID == 8)) {
// ----------^--------------------------^
如果您想查看 acciones
的 任何 是否具有 7
或 8
的 accionID
,请使用some
与 ||
:
if (acciones.some(a => a.accionID == 7 || a.accionID == 8)) {
// ----------^-------------------------^
如果 acciones
中至少有一个条目 accionID
是(比如)6
,则 every
检查将为假,并且 some
检查将为真。
因为some
和every
已经return一个布尔值,所以不需要:
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;
}
然后:
如果
x
已经是一个布尔值,你可以只做return x;
如果
x
不一定是布尔值(重要的是你 return 是一个布尔值,特别是),你可以使用!!
习惯用法来实现它一个布尔值:return !!x;
同样,如果您发现自己正在写作:
if (x) {
return false;
} else {
return true;
}
你总是可以写成
return !x;
相反。