Tags: JavaScript

JavaScript: Jak mogę dynamicznie połączyć właściwości dwóch obiektów?

Aby dynamicznie połączyć właściwości dwóch obiektów w języku JavaScript, możesz użyć różnych metod, w zależności od twoich wymagań. Poniżej przedstawiam przykłady kilku podejść:

Użycie operatora rozproszenia (`...`)

Operator rozproszenia pozwala na łączenie właściwości dwóch obiektów w jeden nowy obiekt. Oto przykład:

const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };

const mergedObj = { ...obj1, ...obj2 };
console.log(mergedObj); // { a: 1, b: 3, c: 4 }

Użycie metody `Object.assign()`

Metoda `Object.assign()` pozwala na kopiowanie właściwości z jednego lub więcej obiektów do obiektu docelowego. Oto przykład:

const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };

const mergedObj = Object.assign({}, obj1, obj2);

console.log(mergedObj); // { a: 1, b: 3, c: 4 }

Użycie pętli `for...in`

Możesz użyć pętli `for...in`, aby dynamicznie przejść przez właściwości jednego obiektu i przypisać je do drugiego. Oto przykład:

const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };

for (const prop in obj2) {
obj1[prop] = obj2[prop];
}

console.log(obj1); // { a: 1, b: 3, c: 4 }

Użycie funkcji z dostępem do prototypu

Możesz stworzyć funkcję, która połączy właściwości dwóch obiektów, również uwzględniając właściwości dziedziczone z prototypu. Oto przykład:

function mergeObjects(target, ...sources) {
for (const source of sources) {
for (const prop in source) {
if (source.hasOwnProperty(prop)) {
target[prop] = source[prop];
}
}
}
return target;
}

const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };

const mergedObj = mergeObjects({}, obj1, obj2);

console.log(mergedObj); // { a: 1, b: 3, c: 4 }

Powyższe przykłady ilustrują różne podejścia do dynamicznego łączenia właściwości obiektów w JavaScript. Wybierz metodę, która najlepiej odpowiada twoim potrzebom i kontekstowi aplikacji.