16 lines
413 B
JavaScript
16 lines
413 B
JavaScript
// structredCloneが遅いため
|
|
// SEE: http://var.blog.jp/archives/86038606.html
|
|
export function deepClone(x) {
|
|
if (typeof x === "object") {
|
|
if (x === null) return x;
|
|
if (Array.isArray(x)) return x.map(deepClone);
|
|
const obj = {};
|
|
for (const [k, v] of Object.entries(x)){
|
|
obj[k] = deepClone(v);
|
|
}
|
|
return obj;
|
|
} else {
|
|
return x;
|
|
}
|
|
}
|