Javascript 如何获取对象数组中布尔值的计数(如果为true)
我必须得到对象数组中布尔值的计数(如果为真)。 json结构如下所示:Javascript 如何获取对象数组中布尔值的计数(如果为true),javascript,Javascript,我必须得到对象数组中布尔值的计数(如果为真)。 json结构如下所示: [ { "id": 5, "name": "a", "select": true }, { "id": 3, "name": "b", "select": false }, { "id": 2, "name": "x", "select": true }, { "id": 1, "name": "y",
[
{
"id": 5,
"name": "a",
"select": true
},
{
"id": 3,
"name": "b",
"select": false
},
{
"id": 2,
"name": "x",
"select": true
},
{
"id": 1,
"name": "y",
"select": false
}
]
这应该能奏效。不需要角度
function getTrueCount(array) {
var count = 0;
for (var i = 0; i < array.length; i++) {
if (array[i].select) {
count++;
}
}
return count;
}
函数getTrueCount(数组){
var计数=0;
对于(var i=0;i
您可以使用
像这样试试
console.log(data.filter((x,i) => { return x.select; }).length)
您可以使用。守则是:
var truevalues = yourarray.filter(function(element) {
return (element.select == true);
}
它返回完成条件的值,因此已选择的值为true。然后您可以使用truevalues.length
来计算值,
如果是回应的话
您可以像这样使用forEach循环
$scope.count = 0;
angular.forEach(response, function(value, key) {
if (value.select == true) {
$scope.count = $scope.count + 1;
}
});
然后你可以从这里获取
$scope.count
这是函数式编程方法:
var count = yourarray.reduce((a, c) => c.yourboolvariable ? ++a : a, 0);
说明:
末尾的零是a的初始值。a被称为蓄能器。“reduce”函数遍历数组中的每个值,传入累加器“a”以及当前项“c”。fat箭头的正确大小是返回值。如果boolvariable值为true,它将向a添加1并返回该值。如果boolvariable值为false,它将简单地返回a的上一个值,准备传递到下一个迭代。a的最终值成为返回给count的结果
这不是棱角。这是纯JavaScript 如果您有一个您提到的特定JSON结构,那么您可以尝试以下方法。如果需要,可以使用箭头功能
const getResult = function(inputArr){
let result = [];
if( Object.prototype.toString.call(inputArr) === '[object Array]' && inputArr.length > 0 ){
result = inputArr.filter(function(item){
return item.select;
});
}
return result.length;
};
因为你没有提供任何尝试(代码片段)来解决你的问题,所以被否决了。各种浏览器上的支持如何?Chrome:Yes,Edge:Yes,Firefox:3,Internet Explorer:9,Opera:10.5,Safari:4,我相信在此之前你可以使用polyfills。你应该更新你的答案,而不是在评论中回复。真的吗?我没有看到其他人把他们的解决方案所使用的浏览器放在一起,用谷歌搜索答案就很容易了。