以下是我写的简单的递归方式的深拷贝。
function copy(source) {
var key, target
if (type(source) === "array") {
target = []
for (key = 0; key < source.length; key++) {
if (type(source[key]) === "array" || "object") {
target[key] = copy(source[key])
} else if (source[key] !== undefined) target[key] = source[key]
}
} else if (type(source) === "object") {
target = {}
for (key in source) {
if (type(source[key]) === "array" || "object") {
target[key] = copy(source[key])
} else if (source[key] !== undefined) target[key] = source[key]
}
}
return target
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.