在javascript中“或”布尔值列表的最短方法

Asq*_*iir 1 javascript boolean-expression

我有一个布尔值列表。我想对||它们中的每一个应用(“或”),并得到结果。(所以,一个新的布尔值。)

列表没有固定长度,所以我不能简单地将代码写成value = l[0] || ... l[length-1]. (对于长列表,这也很丑陋。)

我的做法:

let index = 0;
let value = true;
while(index < list.length && value == value || list[index]) {
    index += 1;
}
Run Code Online (Sandbox Code Playgroud)

我想这是可能的一种说法。如何?

Shi*_*iny 9

您可以使用.includes,它检查数组是否包含值,并返回true/false

const list = [true, true, true, true, false];

// Checks if list contains the Boolean True
const value = list.includes(true);

console.log(value);
Run Code Online (Sandbox Code Playgroud)


Sno*_*now 5

一种选择是使用.some

const value = list.some(Boolean);
Run Code Online (Sandbox Code Playgroud)

const value = list.some(Boolean);
Run Code Online (Sandbox Code Playgroud)

const list = [false, false, false, true, false];
const value = list.some(Boolean);
console.log(value);
Run Code Online (Sandbox Code Playgroud)

  • `.some` 有效,但其他答案中的 `.includes` 确实是更合适的选择。 (3认同)