【问题标题】:Find the length of JSON object for identical key values [duplicate]查找相同键值的 JSON 对象的长度 [重复]
【发布时间】:2017-12-22 20:38:24
【问题描述】:

我有一个 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 并使用 Javascript 找到键 name 的相同值。输出应该是这样的,

east : 1
west : 2

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

【问题讨论】:

标签: javascript json


【解决方案1】:

您可以使用 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
}

【讨论】:

    猜你喜欢
    • 2017-03-30
    • 2011-03-15
    • 2016-01-08
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 2018-07-28
    • 2023-03-11
    • 2016-01-30
    相关资源
    最近更新 更多