Как уже объяснили другие, переменная не может отличаться от двух разных значений одновременно, поэтому:
bucketName !== "match" || bucketName !== "test"
Всегда будет иметь значение true
, потому что одно из двух условий всегда будет true
.
Если вы хотите проверить, что bucketName
не соответствует ни одному из значений в данном наборе, вы можете использовать Array.prototype.includes()
:
const whiteListed = ['match', 'test'].includes(bucketName);
if (!selectedFilterDict && !whiteListed) {
...
} else if (whiteListed) {
...
}
Если вы хотите использовать ту же логику без использования includes
, вы также можете использовать:
if (!selectedFilterDict && bucketName !== "match" && bucketName !== "test") {
...
}
Или:
if (!selectedFilterDict && !(bucketName === "match" && bucketName === "test")) {
...
}