如何在不更改对象的情况下更改其属性? [英] How to change a property on an object without mutating it?

查看:55
本文介绍了如何在不更改对象的情况下更改其属性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

const a = {x: "Hi", y: "Test"}
const b = ???
// b = {x: "Bye", y: "Test"}
// a = {x: "Hi", y: "Test"}

如何在不更改a的情况下将 b.x 设置为"Bye" ?

How can I set b.x to "Bye" without mutating a?

推荐答案

两种方式...

  1. 您可以使用 Object.assign :

const a = { x: "Hi", y: "Test" }
const b = Object.assign({}, a, { x: "Bye" });
console.log(b);

或者您可以使用对象传播运算符.

spread运算符使您可以将一个对象的所有属性分配"给另一对象.

The spread operator allows you to "assign" all properties of one object to another.

我们可以在对象文字中使用它来将 a 的所有属性分配给 b :

We can use it here within an object literal to assign all properties of a to b:

const additions = { x: "Bye" }
const a = { x: "Hi", y: "Test" }
const b = { ...a,  ...additions }
console.log(b);

这篇关于如何在不更改对象的情况下更改其属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆