【发布时间】:2019-04-13 04:51:26
【问题描述】:
我正在尝试对对象进行扁平化和深层复制。
这是我尝试做的一个例子:
const data = {
firstObj: {
data: 'Hi!',
nestedArrayOfObject: [{
name: 'hey',
property: 'object'
}],
},
secondObj: {
name: 'second',
nestedArray: []
},
}
const object = {}
const keys = Object.keys(data)
for (let i = 0; i < keys.length; i += 1) {
const items = Object.keys(data[keys[i]])
for (let j = 0; j < items.length; j += 1) {
object[items[j]] = data[keys[i]][items[j]]
}
}
console.log(object)
据我了解,嵌套对象仅链接到新对象,而不是克隆。
如何在没有额外库的情况下正确完成?
【问题讨论】:
-
您是要扁平化对象还是进行深度克隆?你希望最终的对象是什么样子的?
-
预期输出是什么?
-
@MarkMeyer 我正在尝试进行扁平化并进行深度复制。
-
如果你想把它展平,你将如何处理像
name这样的重复键? -
@MarkMeyer 我的意思是仅在两个级别上变平。示例中的代码正在执行此操作,但据我所知,它不会对 3 级对象一成不变。