gpt4 book ai didi

javascript - 解析并构造一个复杂的json

转载 作者:行者123 更新时间:2023-11-28 18:40:22 27 4
gpt4 key购买 nike

我有一个如下所示的数组,

array=[ 
{ 'mm': '1', exp: 'exp1' },
{ 'mm': '2', exp: 'exp2' },
{ 'mm': [ '1', '3', '7' ], exp: 'exp3' },
{ 'mm': [ '1', '2', '4', '6' ], exp: 'exp4' },
{ 'mm': [ '1', '3', '2' ], exp: 'exp5' },
{ 'mm': [ '8', '2', '9' ], exp: 'exp6' },
{ 'mm': [ '4', '7', '1', '2' ], exp: 'exp7' },
{ 'mm': [ '5', '6', '2', '4', '3', '8', '1' ], exp: 'exp8' }
]

我需要重构这个数组(将键转换为值,将值转换为键),如下所示(无法对“mm”或“exp”键中的任何值进行硬编码,因为它们总是在变化,

    [ 
{ 'mm': '1', exp: ['exp1','exp3','exp4',','exp5','exp7','exp8'] },
{ 'mm': '2', exp: ['exp2','exp4','exp5','exp6','exp7','exp8'] },
{ 'mm': '3', exp: ['exp3','exp5','exp8'] },
{ 'mm':'4', exp:['exp4','exp7','exp8'] },
{ 'mm':'5', exp:['exp8'] },
{ 'mm':'6', exp:['exp4','exp8'] },
{ 'mm':'7', exp: ['exp3','exp7'] },
{ 'mm':'8', exp: ['exp6','exp8] },
{ 'mm':'9', exp: ['exp6'] }
]

您明白了,希望在我尝试自己完成此操作时让我知道您是否找到有效的解决方案。

最佳答案

该提案使用两个嵌套循环和一个对象来引用结果数组的右侧元素。

var array = [{ 'mm': '1', exp: 'exp1' }, { 'mm': '2', exp: 'exp2' }, { 'mm': ['1', '3', '7'], exp: 'exp3' }, { 'mm': ['1', '2', '4', '6'], exp: 'exp4' }, { 'mm': ['1', '3', '2'], exp: 'exp5' }, { 'mm': ['8', '2', '9'], exp: 'exp6' }, { 'mm': ['4', '7', '1', '2'], exp: 'exp7' }, { 'mm': ['5', '6', '2', '4', '3', '8', '1'], exp: 'exp8' }],
pivot = function (array) {
var r = [], o = {};
array.forEach(function (a) {
[].concat(a.mm).forEach(function (b) {
if (!o[b]) {
o[b] = { mm: b, exp: [] };
r.push(o[b]);
}
o[b].exp.push(a.exp);
});
});
return r;
}(array);

document.write('<pre>' + JSON.stringify(pivot, 0, 4) + '</pre>');

关于javascript - 解析并构造一个复杂的json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36205631/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com