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

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

Javascript - 將數組列表的對象轉換為新的格式化對象?

Javascript - 將數組列表的對象轉換為新的格式化對象?

慕碼人2483693 2022-10-21 09:35:17
我正在嘗試使用 javascript 將包含數組的對象轉換為另一個對象。下面是對象字段的示例以及格式化后的示例。let Fields = {  GAME: [    { code: '{{PES}}', title: { en: "playPES"} },    { code: '{{FIFA}}', title: { en: "playFIFA " } },  ]};我需要新字段看起來像這樣let newFields = {name: 'GAME', tags:[   { name: 'playPES', value: "{{PES}}" },   { name: 'playFIFA', value: "{{FIFA}}" }      ]}, 一位貢獻者向我建議了這樣的方法,但我認為需要對其進行修改,但無法弄清楚。export const transform = (fields) => ({  tags: Object .entries (fields) .map (([name, innerFields]) => ({    name,    tags: innerFields.map(({code, title: title: {en})=>({name: en, value: code}))  }))});// newFields= 變換(字段)我是使用 javascript 的新手,因此非常感謝任何幫助,謝謝。
查看完整描述

4 回答

?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

使用您發布的條目方法:


let Fields = {

  GAME: [

    { code: '{{PES}}', title: { en: "playPES"} },

    { code: '{{FIFA}}', title: { en: "playFIFA " } },

  ]

};


// 1. Obtain keys and values from first object

Fields = Object.entries(oldFields);


// 2. Create new object

const newFields = {};


// 3. Create the name key value pair from new Fields array

newFields.name = Fields[0][0];


// 4. Create the tags key value pair by mapping the subarray in the new Fields array

newFields.tags = Fields[0][1].map(entry => ({ name: entry.title.en, value: entry.code }));


查看完整回答
反對 回復 2022-10-21
?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

Object.entries(Fields)將返回這個:


[

  "GAME",

  [TagsArray]

]

并將Object.entries(Fields).map映射此值。


第一張地圖,將只接收GAME,而不是一個數組。


將代碼更改為如下所示:


export const transform = (Fields) => {

  const [name, tags] = Object.entries(Fields);


  return {

    name,

    tags: tags.map(({ code, title }) => ({

      name: title.en,

      value: code

    }))

  }

}

希望它有幫助:)


查看完整回答
反對 回復 2022-10-21
?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

let Fields = {

    GAME: [

      { code: '{{PES}}', title: { en: "playPES"} },

      { code: '{{FIFA}}', title: { en: "playFIFA " } },

    ]

  };

  let newFields = {

    name: 'GAME', 

        tags:[

            { name: 'playPES', value: "{{PES}}" },

            { name: 'playFIFA', value: "{{FIFA}}" }

        ]

    }

  let answer = {

    name: "Game",

        tags: [


        ]

  }

  Fields.GAME.map(i => {

      var JSON = {

        "name": i.title.en,

        "value": i.code

      }

      answer.tags.push(JSON);

  });

  console.log(answer);


查看完整回答
反對 回復 2022-10-21
?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

const transform = (o) => {

    return Object.entries(o).map((e)=>({

        name: e[0],

        tags: e[1].map((k)=>({name: (k.title)?k.title.en:undefined, value: k.code}))

    }))[0]

}


console.log(transform({

  GAME: [

    { code: '{{PES}}', title: { en: "playPES"} },

    { code: '{{FIFA}}', title: { en: "playFIFA " } },

  ]

}))


查看完整回答
反對 回復 2022-10-21
  • 4 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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