Javascript 如何检查对象数组中键的所有值是否为0?
我在数组中有一个对象Javascript 如何检查对象数组中键的所有值是否为0?,javascript,Javascript,我在数组中有一个对象 [ { "event":"a", "count":0 }, { "event":"b", "count":0 }, { "event":"c", "count":0 } ] 我需要检查count的所有值是否为零 我试过下面的代码 Object.values(alarmTypeCount).every(count => cou
[
{
"event":"a",
"count":0
},
{
"event":"b",
"count":0
},
{
"event":"c",
"count":0
}
]
我需要检查count的所有值是否为零
我试过下面的代码
Object.values(alarmTypeCount).every(count => count === 0)
每次需要对对象进行分解以获取所需属性时,它都返回false var alarmTypeCount=[{event:a,count:0},{event:b,count:0},{event:c,count:0}], allCountsZero=Object.valuesalarmTypeCount.every{count}=>count==0;
console.logallCountsZero 您需要对“every”函数的参数进行分解
Object.values(alarmTypeCount).every(({ count }) => count === 0)
您可以使用filter方法进行检查
让数组=[
{
事件:a,
计数:0
},
{
事件:b,
计数:0
},
{
事件:c,
计数:0
}
]
让newArray=array.filterobj=>{
返回obj.count>0;
};
ifnewArray.length==0{
console.log所有元素均为零;
}否则{
console.lognewArray.length+元素不为零;
} 首先,数组上的Object.values是冗余的,因为它只会在数组中为您的案例中的对象提供一个元素数组,这就是您的数组。示例中的count表示数组中的给定对象。您需要访问对象计数属性,如下所示:
alarmTypeCount.every(obj => obj.count === 0)
或者,您可以通过分解分配来完成:
alarmTypeCount.every(({count}) => count === 0)
见下例:
设alarmTypeCount=[{event:a,count:0},{event:b,count:0},{event:c,count:0}];
console.logalarmTypeCount.everyobj=>obj.count==0 使用Array.prototype方法有几个选项,下面是一个总结,包括其他人在这里提到的一些选项: 使用 使用 使用 使用 使用
const isAllZeros = alarmTypeCount.every(a => a.count === 0)
const isAllZeros = !alarmTypeCount.some(a => a.count !== 0)
const isAllZeros = !alarmTypeCount.find(a => a.count !== 0)
const isAllZeros = alarmTypeCount.findIndex(a => a.count !== 0) === -1
const isAllZeros = alarmTypeCount.filter(a => a.count !== 0).length === 0