复制对象并更改Vue中的嵌套属性

时间:2020-07-27 13:55:44

标签: javascript vue.js vuejs2

我在数据中有这种对象

data () {
return {
    foo: {a: 'A', b: 'B', c: {title: "Main"}};
}}

我需要获得该对象的精确副本,但在那里更改一件事

foo2:  {a: 'A', b: 'B', c: {title: "Copy"}};

我尝试将foo2的数据设置为:

foo2: {...foo, c['title']:'Copy'},

但是我收到错误消息:

error  Parsing error: Unexpected token, expected ","

4 个答案:

答案 0 :(得分:2)

foo2: {...foo, c: {...foo.c, title: 'Copy'}},

答案 1 :(得分:2)

通过具有对象值的foo属性将c传播到它自己的对象中。然后将foo.c传播到该对象中,您可以添加title属性,如下所示:

foo2: {...foo, c: {...foo.c, 'title':'Copy'}

扩展foo.c将允许foo.c中任何其他自己的可枚举属性(如果有)保留在新的c对象值中。

答案 2 :(得分:0)

不是吗?

const foo2 = { ...foo, c: { title: "Copy" } }

答案 3 :(得分:0)

能行吗?

const foo = {a: 'A', b: 'B', c: {title: "Main"}}

const foo2 = { ...foo, c: { ...foo.c,  title: 'Copy' } }

console.log(foo2)