尝试做以下事情:
我有一个对象数组,
var arr = [
{ key: "aabFaa", text: "aabFaa" ,field: "firstName",checked: true},
{ key: "aAaaaa", text: "aAaaaa", field: "firstName", checked: true },
];
想要从中获取“文本”和“字段”,并形成一个新的对象数组,如下所示:
result = [ { "field" : "firstName" , value : "aabFaa" , type :"add"},
{ "field" : "firstName" , value : "aAaaaa" , type: "add"}
]
这里的类型是硬编码的,其余的则从“ arr”中获取
最简单的方法是什么?
尝试过:
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)
但这必须多行编写才能获得所需的属性。有没有更简单的方法?
答案 0 :(得分:4)
将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);
答案 1 :(得分:1)
使用地图似乎是一种好方法,但是您将返回一个新对象,而不仅仅是一个属性:
let result = arr.map(a => ({value: a.text, type: 'add', field: a.field}));
答案 2 :(得分:0)
let result = arr.map(obj => ({
field: obj.field,
value: obj.text,
type: "add"
}));