Как сделать массив из объекта Firebase
Есть такой объект:
const obj = {
"09-15-2020": {
"-MI00bHxG-FzygcZvr65": {
"date": "09-15-2020",
"name": "запись3"
}
},
"09-20-2020": {
"-MI-wzaMeXwcuCWA7ozB": {
"date": "09-20-2020",
"name": "запись2"
},
"-MI04gt-L6jTL0MEX-2l": {
"date": "09-20-2020",
"name": "запись4"
}
},
"09-24-2020": {
"-MI-eLufvbdiZvcOg-Ou": {
"date": "09-24-2020",
"name": "запись1"
}
}
}
Как мне сделать такой массив из этого объекта?
const obj = [
{date: "09-20-2020", id: "-MI-wzaMeXwcuCWA7ozB", name: "запись2"},
{date: "09-24-2020", id: "-MI-eLufvbdiZvcOg-Ou", name: "запись1"},
{date: "09-20-2020", id: "-MI04gt-L6jTL0MEX-2l", name: "запись4"},
{date: "09-15-2020", id: "-MI00bHxG-FzygcZvr65", name: "запись3"}
];
У меня получилась только такая странная штука:
const obj = {
"09-15-2020": {
"-MI00bHxG-FzygcZvr65": {
"date": "09-15-2020",
"name": "запись3"
}
},
"09-20-2020": {
"-MI-wzaMeXwcuCWA7ozB": {
"date": "09-20-2020",
"name": "запись2"
},
"-MI04gt-L6jTL0MEX-2l": {
"date": "09-20-2020",
"name": "запись4"
}
},
"09-24-2020": {
"-MI-eLufvbdiZvcOg-Ou": {
"date": "09-24-2020",
"name": "запись1"
}
}
}
const res = Object.keys(obj).map(key => ({...obj[key], id: key}));
console.log(res);
.as-console-wrapper, .as-console {
min-height: 100vh;
}
Ответы (1 шт):
Автор решения: Yaant
→ Ссылка
const obj = {
"09-15-2020": {
"-MI00bHxG-FzygcZvr65": {
"date": "09-15-2020",
"name": "запись3"
}
},
"09-20-2020": {
"-MI-wzaMeXwcuCWA7ozB": {
"date": "09-20-2020",
"name": "запись2"
},
"-MI04gt-L6jTL0MEX-2l": {
"date": "09-20-2020",
"name": "запись4"
}
},
"09-24-2020": {
"-MI-eLufvbdiZvcOg-Ou": {
"date": "09-24-2020",
"name": "запись1"
}
}
}
let result = Object.values(obj).reduce((acc, item) => {
Object.keys(item).forEach(key => {
let {date, name} = item[key];
let id = key;
acc.push({date, id, name});
})
return acc;
}, []);
console.log(result);