gpt4 book ai didi

javascript - 将数据结构重组为新模式 - Javascript

转载 作者:行者123 更新时间:2023-11-29 20:35:10 24 4
gpt4 key购买 nike

我需要重组一个已经存在的数据结构,但不知道如何以最有效的方式做到这一点(如果我应该做我自己的自定义函数或者可能使用第三方库)。

数据:可能有也可能没有一个月或一天,也就是说,如果用户从未输入过数据,那么数据结构将如下所示 {}

2019: {        // year
7: { // month
6: { // day
activities: (4) [{…}, {…}, {…}, {…}]
emotionsFelt: (3) ["Excited", "Nervous", "Happy"]
isSpecialDay: false
latitude: null
locationId: null
locationName: null
locationProvider: null
longitude: null
mood: "Awesome"
optionalDescription: ""
rating: 5
timestamp: "2019-07-06T18:52:38.022Z"
},
7: {
activities: []
emotionsFelt: (2) ["Excited", "Lively"]
isSpecialDay: false
latitude: 56.130366
locationId: "ChIJ2WrMN9MDDUsRpY9Doiq3aJk"
locationName: "Canada"
locationProvider: "GM"
longitude: -106.346771
mood: "Awesome"
optionalDescription: ""
rating: 5
timestamp: "2019-07-06T19:00:18.391Z"
}
}
}

结果应该是:

2019: {        // year
7: { // month
6: { // day
avgRating: 5,
isSpecialDay: false,
entries: [
{
activities: [{…}, {…}, {…}, {…}],
emotionsFelt: ["Excited", "Nervous", "Happy"],
isSpecialMoment: false,
latitude: null,
locationId: null,
locationName: null,
locationProvider: null,
longitude: null,
mood: "Awesome",
optionalDescription: "",
rating: 5,
images: [],
timestamp: "2019-07-06T18:52:38.022Z",
}
]
},
7: {
avgRating: 5,
isSpecialDay: false,
entries: [
{
activities: [],
emotionsFelt: ["Excited", "Lively"],
isSpecialMoment: false,
latitude: 56.130366
locationId: "ChIJ2WrMN9MDDUsRpY9Doiq3aJk"
locationName: "Canada"
locationProvider: "GM"
longitude: -106.346771
mood: "Awesome",
optionalDescription: "",
rating: 5,
images: [],
timestamp: "2019-07-06T18:52:38.022Z",
}
]
}
}
}

关于如何完成此操作的任何提示?提前致谢:)

最佳答案

像这样使用嵌套的 for...in 循环、解构、扩展和速记属性表示法:

let obj = {2019:{7:{6:{activities:["one","two","three","four"],emotionsFelt:["Excited","Nervous","Happy"],isSpecialDay:false,latitude:null,locationId:null,locationName:null,locationProvider:null,longitude:null,mood:"Awesome",optionalDescription:"",rating:5,timestamp:"2019-07-06T18:52:38.022Z"},7:{activities:[],emotionsFelt:["Excited","Lively"],isSpecialDay:false,latitude:56.130366,locationId:"ChIJ2WrMN9MDDUsRpY9Doiq3aJk",locationName:"Canada",locationProvider:"GM",longitude:-106.346771,mood:"Awesome",optionalDescription:"",rating:5,timestamp:"2019-07-06T19:00:18.391Z"}}}};

for (let year in obj) {
for (let month in obj[year]) {
for (let day in obj[year][month]) {
const { isSpecialDay, rating: avgRating, ...r } = obj[year][month][day];
obj[year][month][day] = { isSpecialDay, avgRating, entries: [{ isSpecialDay, avgRating, ...r }]};
}
}
}

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

关于javascript - 将数据结构重组为新模式 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56921939/

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