亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我正在嘗試將 Object 轉換為 javascript 中的對象數組

我正在嘗試將 Object 轉換為 javascript 中的對象數組

一只萌萌小番薯 2023-05-25 15:44:28
這是一個對象:const language = {  fluency: {    "English": "Advanced",    "French": "Intermediate"  },  read: ["English", "French"],  speak: ["English"],  write: ["English"]};我正在嘗試轉換為對象數組,例如:const newLanguage = [    {        language: "English",        fluency: "Advanced",        read: true,        speak: true,        write: true,    },    {        language: "French",        fluency: "Intermediate",        read: false,        speak: false,        write: false,    }]這是我嘗試過的結果:var values = Object.entries(language).map(([k, v]) => ({[k]: v}))結果是:[  { fluency: { English: 'Advanced', French: 'Intermediate' } },  { read: [ 'English', 'French' ] },  { speak: [ 'English' ] },  { write: [ 'English' ] }]PS我不是要代碼,但如果有人能給我一個轉換成結果的步驟,那將是一個很大的幫助!提前致謝!
查看完整描述

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);



查看完整回答
反對 回復 2023-05-25
?
繁花不似錦

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);


查看完整回答
反對 回復 2023-05-25
  • 2 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號