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

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

將對象數組轉換為對象

將對象數組轉換為對象

斯蒂芬大帝 2022-09-23 10:00:57
我有一個數組,看起來像這樣:tab [    0: {        firstName: John,        lastName: Doe,                    situation: married,        familyMembers: 5,    }    1: {        firstName: Jack,        lastName: Daniel,        situation: single,        familyMembers: 6,    }]我需要這樣的東西:{    [John]: {[Doe]: 5,    [Jack]: {[Daniel]: 6,}我嘗試了這樣的事情:tab.map((item) => {    return (        {[item.firstName]: {[item.lastName]: item.familyMembers}}    )})但是,即使不考慮我有一個數組而不是一個對象,結果看起來像這樣:[    0: {        [John]: {[Doe]: 5,    }    1: {        [Jack]: {[Daniel]: 6,    }]這里的任何建議將不勝感激,我嘗試使用rewod,但由于我可能沒有很好地使用它,所以它會產生非常糟糕的結果。
查看完整描述

2 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

假設您希望名稱作為鍵,yxou可以構建條目并從中構建對象。


var tab = [{ firstName: 'John', lastName: 'Doe', situation: 'maried', familyMembers: 5 }, { firstName: 'Jack', lastName: 'Daniel', situation: 'single', familyMembers: 6 }],

    result = Object.fromEntries(tab.map(({ firstName, lastName, familyMembers }) =>

        [firstName, { [lastName]: familyMembers }]

    ));


console.log(result);


查看完整回答
反對 回復 2022-09-23
?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

map()始終返回函數結果的數組。


您可以改用reduce()


var tab = [{

    firstName: 'John',

    lastName: 'Doe',

    situation: 'maried',

    familyMembers: 5,

  },

  {

    firstName: 'Jack',

    lastName: 'Daniel',

    situation: 'single',

    familyMembers: 6,

  }

];

var result = tab.reduce((obj, item) => {

  obj[item.firstName] = {

    [item.lastName]: item.familyMembers

  };

  return obj;

}, {});

console.log(result);


查看完整回答
反對 回復 2022-09-23
  • 2 回答
  • 0 關注
  • 256 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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