#javascript #arrays #object
#javascript #массивы #объект
Вопрос:
У меня есть следующая карта над объектом с массивом объектов
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, если я не могу это изменить? Заранее спасибо!
Ответ №1:
Вы могли бы переименовать это значение в IIFE:
el.push((({ label, ...rest }) => ({ id: label, ...rest }))(shift.roleRate));
Или просто скопируйте это свойство перед:
shift.roleRate.id = shift.roleRate.label;
el.push(shift.roleRate);
Ответ №2:
Вы можете повторно отобразить объекты в массиве:
var data = [{id:1},{id:2},{label:3}];
var res = data.map(x => ({ id: x.id || x.label}));
console.log(res);