这是初始输入
对象 {
的
Belleza:Array(3) [ {...}, {...}, {...} ]
的
0: 对象 { category: "Belleza", text: "Alimentacion Saludable" }
的
1:对象{类别:“Belleza”,文本:“Rutinas”}
的
2:对象{类别:“Belleza”,文本:“Cuidado Facial”}
的
的
的
Viajes:数组 [{...}, {...} ]
的
0:对象{类别:“Viajes”,文本:“Trabajo remoto”}
的
1:对象{类别:“Viajes”,文本:“Viajar con poco dinero”}
}
我有上面的对象,我需要将它转换成这样的东西:
{
Belleza:["Alimentacion Saludable","Rutinas","Cuidado Facial"], Viajes:[Trabajo remoto,Viajar con poco dinero]
}
我试过减少方法但没有用,老实说我不知道如何实现它
使用 reduce 构建对象并从对象数组中收集文本值。
const input = {};
const output = Object.keys(input).reduce((acc, key) => {
const value = input[key];
acc[key] = value.map(item => item.text);
return acc;
}, {});
您可以映射对象的条目,使用
Array#map
提取所有文本属性。
const o = {Belleza: [{ category: "Belleza", text: "Alimentacion Saludable" }, { category: "Belleza", text: "Rutinas" }, { category: "Belleza", text: "Cuidado Facial" }], Viajes: [{ category: "Viajes", text: "Trabajo remoto" }, { category: "Viajes", text: "Viajar con poco dinero" }]};
const res = Object.fromEntries(Object.entries(o).map(([k, v]) => [k, v.map(x => x.text)]));
console.log(res);