合并两个JavaScript对象属性

创建于 2024-12-03 / 27
字体: [默认] [大] [更大]

主题:JavaScript / jQuery


答案:使用展开运算符 (...)

您可以简单地使用扩展运算符 (...) 在 JavaScript 中将两个或多个对象合并为一个。

让我们看一个例子来了解它的基本工作原理:

示例

/* Sample objects */
var obj1 = { make: "Audi", model: "Q8" };
var obj2 = { color: "Blue", year: 2021 };

/* 合并对象 */
var mergedObj = { ...obj1, ...obj2 };

console.log(mergedObj); 
/* Prints: {make: "Audi", model: "Q8", color: "Blue", year: 2021}
*/

请注意,如果列表中稍后出现的对象属性具有相同的名称或键,则它们将覆盖之前的对象属性。 为了更好地理解这一点,让我们看一个例子:

示例

/* Sample objects */
var obj1 = { name: "John", age: 24 };
var obj2 = { name: "Alice", gender: "female" };

/* Merging objects */
var mergedObj = { ...obj1, ...obj2 };

console.log(mergedObj);
/* Prints: {name: "Alice", age: 24, gender: "female"}
*/

如上所示,obj1 中的 name 属性被 obj2 中的 name 属性覆盖。

或者,您可以使用 Object.assign() 方法将所有属性从一个或多个源对象复制到目标对象。 让我们尝试一个示例,看看它是如何工作的:

示例

/* Sample objects */
var target = { a: "Apple", b: "Ball" };
var source = { x: 1, y: 4 };

/* 将源对象合并到目标对象 */
var returnedTarget = Object.assign(target, source);

console.log(returnedTarget);
/* Prints: {a: "Apple", b: "Ball", x: 1, y: 4} */

console.log(target);
/* Prints: {a: "Apple", b: "Ball", x: 1, y: 4}
*/

请注意,只有参数列表中的第一个对象会被修改并返回。 此外,如果它们具有相同的名称,则后面的属性将覆盖早期的属性。

请参阅 JavaScript 对象 上的教程,了解有关创建和操作对象的更多信息。


FAQ 相关问题解答

以下是与此主题相关的更多常见问题解答:



0 人点赞过