我有一个代表车库的数据对象。
例如,我需要计算拥有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/

10-13 08:02