gpt4 book ai didi

javascript - Vue JS 从一个 json 对象创建 json 对象

转载 作者:行者123 更新时间:2023-12-02 22:22:07 32 4
gpt4 key购买 nike

问题是这样的。我有一个 json 对象,假设它看起来像这样:

{
"first": {
"arg": [
"val1",
"val2"
]
},
"second": {
"arg1": [
"val11",
"val12"
],
"arg2": [
"val21",
"val22"
]
}
}

现在我需要用它制作两个对象,如下所示:

{
"first": {
"arg":"val1"
},
"second": {
"arg1":"val11",
"arg2":"val21"
}
}

第二个是这样的:

{
"first": {
"arg":"val2"
},
"second": {
"arg1":"val12",
"arg2":"val22"
}
}

有简单的方法可以让它们变成这样吗?

最佳答案

您可以映射最内部的值或递归调用的映射值,并通过尊重索引将该值分配给对象。

function map(object) {
return Object
.entries(object)
.reduce((r, [k, v]) => {
(Array.isArray(v) ? v : map(v)).forEach((w, i) => {
r[i] = r[i] || {};
r[i][k] = w;
});
return r;
}, []);
}

var data = { first: { arg: ["val1", "val2"] }, second: { arg1: ["val11", "val12"], arg2: ["val21", "val22"] } },
result = map(data);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - Vue JS 从一个 json 对象创建 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59197194/

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