Javascript - 将数组列表的对象转换为新的格式化对象?

我正在尝试使用 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 的新手,因此非常感谢任何帮助,谢谢。


慕码人2483693
浏览 107回答 4
4回答

GCT1015

使用您发布的条目方法:let Fields = {  GAME: [    { code: '{{PES}}', title: { en: "playPES"} },    { code: '{{FIFA}}', title: { en: "playFIFA " } },  ]};// 1. Obtain keys and values from first objectFields = Object.entries(oldFields);// 2. Create new objectconst newFields = {};// 3. Create the name key value pair from new Fields arraynewFields.name = Fields[0][0];// 4. Create the tags key value pair by mapping the subarray in the new Fields arraynewFields.tags = Fields[0][1].map(entry => ({ name: entry.title.en, value: entry.code }));

PIPIONE

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    }))  }}希望它有帮助:)

沧海一幻觉

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

江户川乱折腾

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 " } },  ]}))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript