gpt4 book ai didi

javascript - 将嵌套对象结构从对象数组更改为公共(public)对象并删除旧的对象数组

转载 作者:行者123 更新时间:2023-12-03 05:37:33 25 4
gpt4 key购买 nike

我有一个像这样的对象结构:

{  
"name":"Garden",
"live":true,
"isUpdated":true,
"categories":[
{
"min":0,
"max":0,
"required":true,
"category":"flower",
"options":[
{
"optionName":"Blue",
"optionValue":16.95
}, {
"optionName":"Red",
"optionValue":55.95
}
]
}
]
},

我想将上面的结构更改为这个:

{  
"name":"Garden",
"live":true,
"isUpdated":true,
"categories":[
{
"min":0,
"max":0,
"required":true,
"category":"flower",
"Blue":16.95,
"Red":55.95
}
]
}

基本上我想更改选项对象。

“选项”:

[
{
"optionName":"Blue",
"optionValue":16.95
}, {
"optionName":"Red",
"optionValue":55.95
}
]

至此

"Blue":16.95,
"Red":55.95

欢迎任何基于 JavaScript 或 lodash 的解决方案或建议。

最佳答案

在普通的 Javascript 中,您可以使用两个嵌套的 Array#forEach并构建新属性并删除末尾的 options 属性。

var object = { name: "Garden", live: true, sUpdated: true, categories: [{ min: 0, max: 0, required: true, category: "flower", options: [{ optionName: "Blue", optionValue: 16.95 }, { optionName: "Red", optionValue: 55.95 }] }] };

object.categories.forEach(function (c) {
c.options.forEach(function (o) {
c[o.optionName] = o.optionValue;
});
delete c.options;
});

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

关于javascript - 将嵌套对象结构从对象数组更改为公共(public)对象并删除旧的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40671824/

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