【发布时间】:2016-04-20 04:43:24
【问题描述】:
在 Python 中,我可以:l = [{'d': 3}] * 5 得到 [{'d': 3}, {'d': 3}, {'d': 3}, {'d': 3}, {'d': 3}]。
在 ES6 中执行此操作的等效方法是什么,实际上是 克隆 对象而不只是复制引用?
编辑:基本上,在 ES6 中是否有创建以下数组的快捷方式:
const arr = [
{"d": 3},
{"d": 3},
{"d": 3},
{"d": 3},
{"d": 3},
{"d": 3},
{"d": 3},
{"d": 3},
{"d": 3},
{"d": 3},
{"d": 3},
{"d": 3},
];
?
【问题讨论】:
-
您的 Python 代码只是复制了引用,不是吗?
l[0]['d'] = 2影响整个列表。 -
是的,我知道,而且我已经表明我想克隆对象,而不仅仅是复制引用。
-
@Marius 所说的非常完美。阅读Python list of lists, changes reflected across sublists unexpectedly
标签: javascript arrays ecmascript-6