Как бы я использовал _.mapKey для этого массива объектов - PullRequest
0 голосов
/ 01 июня 2018

У меня есть следующий массив объектов.Я хотел бы изменить ключ «текст» на имя метки

[
  {id: 0, text: "blue"},

  {id: 1, text: "green"},

  {id: 2, text: "orange"},

  {id: 3, text: "yellow"}
]

«Идентификатор» должен оставаться как есть.

Я могу использовать lodash или javascript.

Ответы [ 3 ]

0 голосов
/ 01 июня 2018

вы можете сделать с помощью .map

let arr=[
  {id: 0, text: "blue"},

  {id: 1, text: "green"},

  {id: 2, text: "orange"},

  {id: 3, text: "yellow"}
];

let arr1=[];
arr1=arr.map(a=>({id:a.id,label:a.text}));
console.log(arr1);
0 голосов
/ 01 июня 2018

Вы можете использовать функцию forEach и массив с целями

. Эта альтернатива приведет к изменению исходного массива.

let array = [{id: 0, text: "blue"},{id: 1, text: "green"}, {id: 2, text: "orange"},  {id: 3, text: "yellow"}],
    target = [['text', 'label'], ['ele', 'stack']];

array.forEach(o => {      
  target.forEach(([src, dest]) => {
    if (o[src]) {
      Object.assign(o, {[dest]: o[src]});
      delete o[src];
    }
  });
});
    
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }
0 голосов
/ 01 июня 2018

Вы можете использовать метод .map() для переименования ключа в массиве объектов.

var data = [
  {id: 0, text: "blue"},

  {id: 1, text: "green"},

  {id: 2, text: "orange"},

  {id: 3, text: "yellow"}
]

data = data.map(el => {
  return {
    id: el.id,
    label: el.text
  }
})

console.log(data);
...