我有一个代表车库的数据对象。
例如,我需要计算拥有carmake1的车库的数量
我已经试过了:
count = obj.garages.filter(function(item) { return item === "carmake1" }).length;
但这返回0,我们知道数据中有实际的carmake1。
数据如下:
obj = {
"garages": [{
"id": "1",
"carId": "1",
"tags": {
"483": "carmake1",
"485": "carmake3"
}
},
{
"id": "2",
"carId": "1",
"tags": {
"483": "carmake1",
"485": "carmake3"
}
},
{
"id": "3",
"carId": "2",
"tags": {
"484": "carmake2",
"485": "carmake3"
}
},
{
"id": "4",
"carId": "2",
"tags": {
"483": "carmake1",
"485": "carmake3"
}
},
{
"id": "5",
"carId": "3",
"tags": {
"484": "carmake2",
"485": "carmake3"
}
},
]
};
我该怎么办?
最佳答案
您可以通过属性检查来计算。
var obj = obj = { "garages": [{ "id": "1", "carId": "1", "tags": { "483": "carmake1", "485": "carmake3" } }, { "id": "2", "carId": "1", "tags": { "483": "carmake1", "485": "carmake3" } }, { "id": "3", "carId": "2", "tags": { "484": "carmake2", "485": "carmake3" } }, { "id": "4", "carId": "2", "tags": { "483": "carmake1", "485": "carmake3" } }, { "id": "5", "carId": "3", "tags": { "484": "carmake2", "485": "carmake3" } }, ] },
count = obj.garages.filter(function(item) {
return item.tags[483] === "carmake1"
}).length;
console.log(count);
或检查
tags
中的所有属性。var obj = obj = { "garages": [{ "id": "1", "carId": "1", "tags": { "483": "carmake1", "485": "carmake3" } }, { "id": "2", "carId": "1", "tags": { "483": "carmake1", "485": "carmake3" } }, { "id": "3", "carId": "2", "tags": { "484": "carmake2", "485": "carmake3" } }, { "id": "4", "carId": "2", "tags": { "483": "carmake1", "485": "carmake3" } }, { "id": "5", "carId": "3", "tags": { "484": "carmake2", "485": "carmake3" } }, ] },
count = obj.garages.filter(function (item) {
return Object.keys(item.tags).some(function (k) {
return item.tags[k] === "carmake1"
});
}).length;
console.log(count);
关于javascript - Javascript计算有多少个车库有carmake1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40107350/