从对象数组中获取多个属性并形成一个新属性:Javascript

v21*_*103 1 javascript ecmascript-6

一直在尝试做以下事情:

我有一系列对象,


var arr = [
  { key: "aabFaa", text: "aabFaa" ,field: "firstName",checked: true},
  { key: "aAaaaa", text: "aAaaaa", field: "firstName", checked: true },
];

Run Code Online (Sandbox Code Playgroud)

想要从中获取“文本”和“字段”并形成一个新的对象数组,如下所示:

result = [ { "field" : "firstName" , value : "aabFaa" , type :"add"}, 
           { "field" : "firstName" , value : "aAaaaa" , type: "add"}
         ]  

Run Code Online (Sandbox Code Playgroud)

这里的类型是硬编码的,其余部分是从“arr”中获取的

有什么更简单的方法可以做到这一点?

已经尝试过这个:


var arr = [
  { key: "aabFaa", text: "aabFaa" ,field: "firstName",checked: true},
  { key: "aAaaaa", text: "aAaaaa", field: "firstName", checked: true },
];

Run Code Online (Sandbox Code Playgroud)

但这必须写成多行才能获得所需的属性。有更简单的方法吗?

ran*_*oul 5

map与 一起使用Object Destructuring

var arr = [
    { key: "aabFaa", text: "aabFaa" ,field: "firstName",checked: true},
    { key: "aAaaaa", text: "aAaaaa", field: "firstName", checked: true },
  ];

const output = arr.map(({field, text}) => ({field, value: text, type: "add"}));

console.log(output);
Run Code Online (Sandbox Code Playgroud)