2 回答

TA贡献1772条经验 获得超8个赞
您可以利用扩展运算符并将流畅度与其他属性分开,然后.map()
根据提取的流畅度值构建对象数组。Array.reduce可用于根据rest
变量的属性构建对象:
const language = {
fluency: {
"English": "Advanced",
"French": "Intermediate"
},
read: ["English", "French"],
speak: ["English"],
write: ["English"]
};
let {
fluency,
...rest
} = language;
let result = Object.entries(fluency).map(([lang, flue]) =>
Object.keys(rest)
.reduce((obj, skill) => {
obj[skill] = rest[skill].includes(lang);
return obj;
}, {
language: lang,
fluency: flue
})
);
console.log(result);

TA贡献1851条经验 获得超4个赞
您可以执行以下操作
const language = {
fluency: {
"English": "Advanced",
"French": "Intermediate"
},
read: ["English", "French"],
speak: ["English"],
write: ["English"]
};
const newLanguage = []
for (const [key, value] of Object.entries(language.fluency)) {
newLanguage.push({
language: key,
fluency: value,
read: language.read.includes(key),
speak: language.speak.includes(key),
write: language.write.includes(key),
});
}
console.log(newLanguage);
添加回答
举报