Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Hợp nhất hai mảng theo thuộc tính id trong JavaScript


Giả sử chúng ta có hai mảng đối tượng, mảng đầu tiên chứa các đối tượng với id và tên người dùng.

Mảng thứ hai chứa các đối tượng với id và địa chỉ người dùng.

Mảng như sau:

const arr1 = [
  {"id":"123","name":"name 1"},
  {"id":"456","name":"name 2"}
];
const arr2 = [
  {"id":"123","address":"address 1"},
  {"id":"456","address":"address 2"}
];

Chúng ta cần viết một hàm JavaScript nhận hai mảng như vậy và hợp nhất chúng thành một mảng thứ ba.

Mảng thứ ba sẽ chứa id, tên và địa chỉ của người dùng tương ứng.

Ví dụ

Mã thực hiện:

const arr1 = [
  {"id":"123","name":"name 1"},
  {"id":"456","name":"name 2"}
];
const arr2 = [
  {"id":"123","address":"address 1"},
  {"id":"456","address":"address 2"}
];
const mergeArrays = (arr1 = [], arr2 = []) => {
  let res = arr1.map(obj => {
    const index = arr2.findIndex(el => el["id"] == obj["id"]);
    const { address } = index !== -1 ? arr2[index] : {};
    return { ...obj, address };
  });
  return res;
};
console.log(mergeArrays(arr1, arr2));

Kết quả

Kết quả trong console:

[
  { id: '123', name: 'name 1', address: 'address 1' },
  { id: '456', name: 'name 2', address: 'address 2' }
]