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);
添加回答
舉報