Javascript数组值比较

Javascript数组值比较,javascript,Javascript,我正在检查每个复选框的状态(总共2个元素) 现在检查的值可以是 (2) [true, true] 或 或 或 我现在用一点手工的方法检查它 if(checked[0] && check[1]) { ... } 如果我有更多的元素,我必须手动添加它们,就像 if(checked[0] && check[1] && check[2]) { ... } 我正在寻找一种更好的方法来完善我的代码,所以我不需要手动添加数组值来进行比较。谢谢使用每个和数

我正在检查每个复选框的状态(总共2个元素)

现在检查的值可以是

(2) [true, true]

我现在用一点手工的方法检查它

if(checked[0] && check[1]) { ... }
如果我有更多的元素,我必须手动添加它们,就像

 if(checked[0] && check[1] && check[2]) { ... }

我正在寻找一种更好的方法来完善我的代码,所以我不需要手动添加数组值来进行比较。谢谢

使用
每个
数组。从

var checked = [];
var allCheckboxes = document.querySelectorAll('.checkbox');
var allChecked = Array.from( allCheckboxes ).every( s => s.checked )

使用
每个
数组。从

var checked = [];
var allCheckboxes = document.querySelectorAll('.checkbox');
var allChecked = Array.from( allCheckboxes ).every( s => s.checked )

您可以使用
Array.reduce
这样做

const pass=[true,true,true]
const passNot=[真、假、真]
常数缩减器=(isPassing,value)=>{
如果(值===false)返回false
否则返回isPassing
}
console.log('yay',pass.reduce(reducer,true))

console.log('nay',passNot.reduce(reducer,true))
您可以使用
Array.reduce来这样做

const pass=[true,true,true]
const passNot=[真、假、真]
常数缩减器=(isPassing,value)=>{
如果(值===false)返回false
否则返回isPassing
}
console.log('yay',pass.reduce(reducer,true))

console.log('nay',passNot.reduce(reducer,true))
您正在尝试将一个值数组组合成一个值数组,这就是
reduce
方法所做的


您正在尝试将一个值数组合并为一个值,这就是
reduce
方法所做的


你想检查所有的都是真的还是假的?是的,我想检查所有的都是真的你想检查所有的都是真的还是假的?是的,我想检查所有的都是真的啊!对!<代码>每一个
非常感谢您刚刚检查过IE不支持来自是否有方法支持IE和一些移动浏览器?Thanks@olo你可以用每个人的pollyfil啊!对!<代码>每一个非常感谢您刚刚检查过IE不支持来自是否有方法支持IE和一些移动浏览器?Thanks@olo您可以使用every的pollyfil此方法支持IE和大多数移动浏览器!非常感谢!此方法支持IE和大多数移动浏览器!非常感谢!
if(checked[0] && check[1]) { ... }
 if(checked[0] && check[1] && check[2]) { ... }
var checked = [];
var allCheckboxes = document.querySelectorAll('.checkbox');
var allChecked = Array.from( allCheckboxes ).every( s => s.checked )
    let result = document.querySelectorAll('.checkbox')
    .map( box => box.checked ) // get an array of boolean
    .reduce ( (bool, res) => return bool && res /*all checkboxes must be checked */, true /* initial value */ );