我在数据中有这种对象
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 ","
答案 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)