Объединение 2 массивов в один массив Javascript - PullRequest
1 голос
/ 10 марта 2020

Я создал 2 массива и хочу объединить массив объектов в один, заполнив все столбцы. Например:

var array = [{"first_name":"John", "Last Name":"Doe", "age":46}, {"first_name":"Tim", "Last Name":"Jones", "age":26}, {"first_name":"Marcus", "Last Name":"Brown", "age":31}, {"first_name":"Paul", "Last Name":"Daniels", "age":28}, {"first_name":"Samantha", "Last Name":"Williams", "age":32 }];

var array2 = [{"first_namee":"John", "Last Name":"Doe", "age":46, "height": "65"}, {"first_name":"Tim", "Last Name":"Jones", "age":26, "height": "58"}, {"first_name":"Marcus", "Last Name":"Brown", "age":66, "height": "69"}, {"first_name":"Paul", "Last Name":"Daniels", "age":28, "height": "72"}];

Я хочу объединить 2 массива объектов в один, как показано ниже :

var arrayMerge = [{"first_name":"John", "Last Name":"Doe", "age":46, "height": "65"}, {"first_name":"Tim", "Last Name":"Jones", "age":26, "height": "58"}, {"first_name":"Marcus", "Last Name":"Brown", "age":66, "height": "69"}, {"first_name":"Paul", "Last Name":"Daniels", "age":28, "height": "72"}, {"first_name":"Samantha", "Last Name":"Williams", "age":32, "height": ""}];

Как бы я сделал это для 2-х массивов, я попробовал concat и merge, и это дает мне оба массива в одном, не объединяя все столбцы в один

Ответы [ 2 ]

3 голосов
/ 10 марта 2020

Во-первых, предполагая, что объекты в массивах имеют одинаковый порядок, вы можете отобразить первый и создать новый объект для элемента массива, используя Object.assign() для объединения двух объектов.

Например:

const mergeArraysOfObjects = (arr1, arr2) =>
  arr1.map((obj1, idx) => Object.assign({}, obj1, arr2[idx]))

Вы также можете использовать новый оператор распространения объекта:

const mergeArraysOfObjects = (arr1, arr2) =>
  arr1.map((obj1, idx) => ({ ...obj1, ...arr2[idx] }))
1 голос
/ 10 марта 2020

Не очень гибкий вариант - использовать оператор распространения ES6, и после этого вы можете заполнить различия:

let array = [{"first_name":"John", "Last Name":"Doe", "age":46}, {"first_name":"Tim", "Last Name":"Jones", "age":26}, {"first_name":"Marcus", "Last Name":"Brown", "age":31}, {"first_name":"Paul", "Last Name":"Daniels", "age":28}, {"first_name":"Samantha", "Last Name":"Williams", "age":32 }];

let array2 = [{"first_namee":"John", "Last Name":"Doe", "age":46, "height": "65"}, {"first_name":"Tim", "Last Name":"Jones", "age":26, "height": "58"}, {"first_name":"Marcus", "Last Name":"Brown", "age":66, "height": "69"}, {"first_name":"Paul", "Last Name":"Daniels", "age":28, "height": "72"}];

let mergedArray = [...array, ...array2]
mergedArray.map(item => {
  if (!item.height) {
    item.height = ""
  }
})

console.log(mergedArray)
...