在 JSON 数组 Javascript 中返回与 count 相同的值



我的数据似乎是这样的:

const myObj = {
  "incidents": [{
    "id": 4,
    "fullName": "edsadas",
    "address": "Bagbaguin, Pandi, Bulacan",
  }, {
    "id": 5,
    "fullName": "reasdsa",
    "address": "Dalig, Balagtas, Bulacan",
  }, {
    "id": 6,
    "fullName": "dsa",
    "address": "Dalig, Balagtas, Bulacan",
  }],
}

我的问题,如何返回带有计数的相似值,如下所示:

{
  "Dalig, Balagtas, Bulacan": 2,
  "Bagbaguin, Pandi, Bulacan": 1
}
您可以使用

函数reduce

var obj = {  "incidents": [{      "id": 4,      "fullName": "edsadas",      "address": "Bagbaguin, Pandi, Bulacan",    },    {      "id": 5,      "fullName": "reasdsa",      "address": "Dalig, Balagtas, Bulacan",    },    {      "id": 6,      "fullName": "dsa",      "address": "Dalig, Balagtas, Bulacan",    }  ]};
var result = obj.incidents.reduce((a, c) => {
            a[c.address] = (a[c.address] || 0) + 1
            return a;
         }, {});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

使用reducecomma operator

var obj = {  "incidents": [{      "id": 4,      "fullName": "edsadas",      "address": "Bagbaguin, Pandi, Bulacan",    },    {      "id": 5,      "fullName": "reasdsa",      "address": "Dalig, Balagtas, Bulacan",    },    {      "id": 6,      "fullName": "dsa",      "address": "Dalig, Balagtas, Bulacan",    }  ]},         
    result = obj.incidents
                .reduce((a, c) => (a[c.address] = (a[c.address] || 0) + 1, a), {});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

您可以遍历它们并每次递增值。如果没有找到,只需分配1

const data = [
  {
     "id": 4,
     "fullName": "edsadas",
     "address": "Bagbaguin, Pandi, Bulacan",
  },
  {
     "id": 5,
     "fullName": "reasdsa",
     "address": "Dalig, Balagtas, Bulacan",
  },
  {
     "id": 6,
     "fullName": "dsa",
     "address": "Dalig, Balagtas, Bulacan",
}];
const count = data.reduce((acc, item) => (acc[item.address] = acc[item.address] ? acc[item.address] + 1 : 1, acc), {});
console.log(count);

最新更新