javascript - 查找相同键值的 JSON 对象的长度

标签 javascript json

我有一个 JSON 文件。我想找到一个键值对相似的 JSON 对象的长度。就像,

https://api.myjson.com/bins/h5mgv

[
  {
    "receive_date": "2013-11-04",
    "responses": "2",
    "name": "west"
  },
  {
    "receive_date": "2013-11-04",
    "responses": "8668",
    "name": "west"
  },
  {
    "receive_date": "2013-11-13",
    "responses": "121",
    "name": "east"
  }
]

在上面的示例中,长度为 2,其中 "name": "west"长度为 1,其中 "name": "east" 。我想迭代 JSON 并找到键 name 的相同值使用 JavaScript。输出应该看起来像,

east : 1
west : 2

通过使用 length()我可以找到整个 JSON 的长度,但是推荐的方法来查找相同键值的长度。

最佳答案

您可以使用reduce来获取一个新对象,列出每个名称的计数:

const myArray = [
  {
    "receive_date": "2013-11-04",
    "responses": "2",
    "name": "west"
  },
  {
    "receive_date": "2013-11-04",
    "responses": "8668",
    "name": "west"
  },
  {
    "receive_date": "2013-11-13",
    "responses": "121",
    "name": "east"
  }
]

const myCounts = myArray.reduce((counts, item) => {
  if (counts[item.name] === undefined) counts[item.name] = 0;
  counts[item.name]++;
  return counts;
}, {});

console.log(myCounts);

这会产生结果:

{
  "west": 2,
  "east": 1
}

关于javascript - 查找相同键值的 JSON 对象的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47947118/

相关文章:

javascript - Node.js/Express - 路由多个表单帖子

javascript - 如何在 takeUntil rxjs 函数之后采取行动

Java Retrofit2 POST JsonObject 好的做法?

javascript - REACT 导航栏需要点击两次

javascript - 无法弄清楚我的 Carousel 出了什么问题

javascript - 如何在JS中设置默认选项卡

javascript - $.getJSON 命中失败但返回文本

java - 如何获取json字符串的值,然后通过这个函数解析它

javascript - 如何将对象引用传递给指令?

json - 在 VueJS 中更改环境变量后,有没有办法热重新加载我的 Vue 页面?