【问题标题】:Best way to transform this json with lodash用 lodash 转换这个 json 的最佳方法
【发布时间】:2015-11-09 13:09:46
【问题描述】:

我从lodash开始,我需要转换这个json:

{
    "keyA": "valA",
    "keyB": [
        "valB1",
        "valB2",
        "valB3",
        "valB4",
    ],
    "keyC": [
        "valC1",
        "valC2",
        "valC3",
        "valC4",
    ],
    "...": ["...","...","...","..."],
    "keyD": "valD"
}

到这个json:

[
    {
        "keyB":"valB1",
        "keyC":"valC1"
    },
    {
        "keyB":"valB2",
        "keyC":"valC2"
    },
    {
        "keyB":"valB3",
        "keyC":"valC3"
    },
    {
        "keyB":"valB4",
        "keyC":"valC4"
    },
]

keyBkeyC 和其他数组键的大小始终相同。

那些不是数组的键我必须忽略它们。

有什么想法吗?谢谢。

【问题讨论】:

  • 数组总是具有相同的大小并且按照示例中的正确顺序排列?
  • 是的,尺寸相同,顺序相同

标签: javascript json node.js lodash


【解决方案1】:

这样的?

var o = {
    "keyA": "valA",
    "keyB": [
        "valB1",
        "valB2",
        "valB3",
        "valB4",
    ],
    "keyC": [
        "valC1",
        "valC2",
        "valC3",
        "valC4",
    ],
    "keyD": "valD",
    "keyE": [
        "valE1",
        "valE2",
        "valE3",
        "valE4",
    ]
};

var r = [];

_.each(o, function(v, k) {
   if (_.isArray(v)) {
       _.each(v, function(v2, i) {
           r.length <= i && r.push({});
           r[i][k] = v2;
       });
   }
});

console.log(r);

小提琴:http://jsfiddle.net/ferahl/1rjx3tL8/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-23
    • 2021-10-16
    • 2021-08-24
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 2019-11-01
    相关资源
    最近更新 更多