简体   繁体   中英

Fetch multiple properties from an array of objects and form a new one : Javascript

Been trying to do the following thing:

I have an array of objects ,


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

Would want to fetch the "text" and "field" out of it and form a new array of objects something like this:

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

Here type is hard coded one, where as rest are fetched from the "arr"

Whats the easier way to do this?

Have tried this:

 var arr = [ { key: "aabFaa", text: "aabFaa" ,field: "firstName",checked: true}, { key: "aAaaaa", text: "aAaaaa", field: "firstName", checked: true }, ]; let result = arr.map(a => a.text); console.log(result) 

But this has to be written in multiple lines to get desired properties.Is there an easier approach?

use map with 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); 

使用map似乎是一种好方法,但是您将返回一个新对象,而不仅仅是一个属性:

let result = arr.map(a => ({value: a.text, type: 'add', field: a.field}));
let result = arr.map(obj => ({
    field: obj.field,
    value: obj.text,
    type: "add"
}));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM