更改对象键值

时间:2019-03-21 13:11:42

标签: javascript arrays object

我在具有对象数组的对象上有以下映射

Object.values(props.roleRateOptions).map(el => {
  el.push(shift.roleRate);
  return el;
})

它将返回这样的对象数组

[ {id:1},{id:2},{label:3} ]

问题是当我push(shift.roleRate)的值叫做label而不是id时,如何将其更改为id?或任何变通办法,如果我不能更改此值,也许我可以分配一个新的id值?预先感谢!

2 个答案:

答案 0 :(得分:0)

您可以重新映射数组中的对象:

var data = [{id:1},{id:2},{label:3}];

var res = data.map(x => ({ id: x.id || x.label}));

console.log(res);

答案 1 :(得分:0)

您可以在IIFE中重命名该值:

 el.push((({ label, ...rest }) => ({ id: label, ...rest }))(shift.roleRate));

或者只需在以下位置复制该属性:

 shift.roleRate.id = shift.roleRate.label;
 el.push(shift.roleRate);