gpt4 book ai didi

javascript - Tally Javascript 对象属性值

转载 作者:行者123 更新时间:2023-11-30 12:23:18 26 4
gpt4 key购买 nike

我在 Javascript 的数组中有几个对象。该对象看起来像这样:

        model: [
{
category: 'Media',
value: '',
checked: false
},
{
category: 'Entertainment',
value: '',
checked: false
},
{
category: 'Music',
value: '',
checked: false
},
{
category: 'Theater',
value: '',
checked: false
}
]

我想遍历这个对象数组,并计算其中的 checked: true 值的数量。如果它们都等于 true,我想运行一个函数。我该如何查看是否所有的 checked 值都等于 true

最佳答案

最简单的方法是使用 Array.prototype.reduce :

var aggregate = function (arr) {
return arr.reduce(function (p, c) {
return c.checked ? p + 1 : p;
}, 0);
}

if (aggregate(model) === model.length) {
// call your function
}

编辑

正如 @Bergi 指出的那样, 使用 Array.prototype.every 更快来自 the comments above 的解决方案,因为 .every 在第一个实例上终止,回调返回 false:

var allChecked = function (arr) {
return arr.every(function (item) {
return item.checked;
});
}

if (allChecked(model)) {
// call your function
}

不过,如果您追求性能,使用 for 循环会更快:

var allChecked = function (arr) {
for (var i = arr.length; --i;)
if (!arr[i].checked) return false;
return true;
}

关于javascript - Tally Javascript 对象属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30315246/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com