使用Underscore.js解析json数组以进行映射

Parsing the json array to map using Underscore.js

本文关键字:映射 数组 json Underscore js 解析 使用      更新时间:2023-09-26

我有一个json数组,我想将其解析为map对象。键应该是状态,值应该是一个具有相同状态的数组对象。json示例如下:

{
  "totalRec": 10,
  "content": [
    {
      "name": "Pradeep",
      "age": "24",
      "state": "KA"
    },
    {
      "name": "Praveen",
      "age": "30",
      "state": "KA"
    },
    {
      "name": "Navnish",
      "age": "32",
      "state": "GOA"
    },
    {
      "name": "Vinod",
      "age": "32",
      "state": "MH"
    },
    {
      "name": "Vikas",
      "age": "32",
      "state": "MH"
    },
    {
      "name": "Harry",
      "age": "44",
      "state": "MP"
    },
    {
      "name": "Linda",
      "age": "22",
      "state": "GOA"
    },
    {
      "name": "June",
      "age": "18",
      "state": "KA"
    },
    {
      "name": "Sachin",
      "age": "32",
      "state": "GOA"
    },
    {
      "name": "Arjun",
      "age": "30",
      "state": "UP"
    }
  ]
}

我尝试使用Underscore.js并使用以下代码:

  var some_map = _.object(_.map(data.content, function(item) {
            return [item.state, item]
        }));

但是上面的代码并没有给我一个列表对象作为特定状态的值。我想要这个值保存所有包含状态键的对象。

你能告诉我我哪里做错了吗?

看来你要找的是_.groupBy()

仅仅

var byState = _.groupBy(data.content, "state");

应该给你一个形式为

的对象
{"GOA": [{"name": "Sachin", ...}, ...}, "UP": [...], ...}