如何将行转换为列json

时间:2019-07-19 13:54:32

标签: javascript arrays json

我有一个数组json对象,并希望将行转换为列,而将列在侧面作为column的值。就像postgresql的功能交叉表

json是这样的:

{"marketcode":"01","size":"8,5","amount":1},
{"marketcode":"01","size":"9","amount":1},
{"marketcode":"01","size":"10","amount":0},

我想要这样:

{"marketcode": "01", "8,5": 1, "9": 1, "10": 0}

我搜索了lodash,但没有找到任何东西

2 个答案:

答案 0 :(得分:1)

希望这就是您要寻找的东西:

const convert = toConvert => {
    const map = toConvert.reduce((r, {marketcode, size, amount}) => {
    if (r.has(marketcode))
        r.set(marketcode, {...r.get(marketcode), [size]: amount});
     else
        r.set(marketcode, {marketcode, [size]: amount});
    return r;
  }, new Map());
  return [...map.values()];
};

提琴:https://jsfiddle.net/cccheng118/pyh2L85k/6/

答案 1 :(得分:0)

非常感谢Bill,对不起白痴的问题,但是我认为这个问题有一个解决之道,我也用任何一种方式编写了一个解决方案,非常感谢,请遵循我的代码:

&

提琴:https://jsfiddle.net/v1hLs5o0/6/