【问题标题】:How to Re-format this JSON using Lodash / JavaScript?如何使用 Lodash / JavaScript 重新格式化这个 JSON?
【发布时间】:2015-05-27 20:52:18
【问题描述】:

我需要重新格式化以下 JSON 数据

[
  {
    "name": "Hello",
    "value": 1
  },
  {
    "name": "Hello",
    "value": 11
  },
  {
    "name": "Bye",
    "value": 2
  },
  {
    "name": "Bye",
    "value": 22
  }
]

到这里:

[
  {
     "Hello": 1,
     "Bye": 2
  },
  {
     "Hello": 11,
     "Bye": 22
  },
]

之后总会有一个具有相同“名称”字段(但“值”字段中的值不同)的对象。我被卡住了,不知道如何解决这个问题。是否可以使用 Lodash 或纯 JavaScript?

【问题讨论】:

  • 一切皆有可能。这当然是..你有没有尝试解决它?

标签: javascript json lodash


【解决方案1】:

我以前从未听说过 Lodash,但在纯 JS 中,这可以通过两个嵌套循环来解决:

function myConvert(long)
{
    var short = [];
    for(var i = 0; i < long.length; i++)
    {
        var key = long[i].name;
        var value = long[i].value;
        var object = null;
        for(var j = 0; j < short.length; j++)
        {
            if(short[j][key] === undefined)
            {
                object = short[j];
                break;
            }
        }
        if(object === null)
        {
            object = {};
            short.push(object);
        }
        object[key] = value;
    }
    return short;
}

这基本上是:

遍历long的所有元素。
对于其中的每一个,遍历 short 的所有元素以找到第一个未定义当前 name 作为键的元素。
如果找不到,请创建一个新对象。
将当前的value 添加到object,以name 为键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    • 2022-11-04
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    相关资源
    最近更新 更多