Как я могу преобразовать массив объектов в массив объектов с теми же значениями, но с измененными ключами? - PullRequest
1 голос
/ 25 сентября 2019

У меня есть массив с объектами, и я хочу преобразовать его в массив, содержащий те же значения, но с разными именами ключей.(JavaScript)

Например, массив

[{name: "Bob", age: 50, person: true}, {name: "Jerry", age: 20, person: true}]

становится

[{identification: "Bob", years: 50, person: true}, {identification: "Jerry", years: 20, person: true}]

Ответы [ 3 ]

3 голосов
/ 25 сентября 2019

Использование функции «Карта» прекрасно работает здесь.

const people = [
    {name: "Bob", age: 50, person: true},
    {name: "Jerry", age: 20, person: true}
];

const formatted = people.map((person) => ({
    identification: person.name,
    years: person.age,
    person: person.person
});

Это должно работать для этой проблемы.

0 голосов
/ 25 сентября 2019

На всякий случай, если вы предпочитаете изменять объекты на месте, вы можете использовать стратегию с помощью nverba здесь :

let rows = [
    {name: "Bob", age: 50, person: true}, 
    {name: "Jerry", age: 20, person: true}
];

let keyMaps = [
    ['name', 'identification'],
    ['age', 'years'],
];

for(let keyMap of keyMaps)
for(let row of rows)
    delete Object.assign(row, {[keyMap[1]]: row[keyMap[0]] })[keyMap[0]];

console.log(rows);

keyMap[1] - новый ключ.keyMap[0] старый ключ.Object.assign берет значение старого ключа и помещает его в новый ключ.Ключевое слово delete сбивает с толку, но не относится к row в целом.Это только удаление старого ключа.

0 голосов
/ 25 сентября 2019

Я думаю, что вы можете использовать метод map , который возвращает этот метод, и массив такой же длины, как и тот, который вы отображаете:


 const array = [{name: "Bob", age: 50, person: true}, {name: "Jerry", age: 20, person: true}];

let newKeysArray = array.map( a => { 
   let obj = { 
        identification: person.name,
        years: person.age,
        person: person.person
   };
   return obj
 } );

Итак, внутри карты, которую вы назначаетезначения, которые вам нужны для нового объекта и возвращают объект как сопоставленный элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...