深度复制数组或对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度复制数组或对象相关的知识,希望对你有一定的参考价值。

  1. function deepCopy(obj) {
  2. if (Object.prototype.toString.call(obj) === '[object Array]') {
  3. var out = [], i = 0, len = obj.length;
  4. for ( ; i < len; i++ ) {
  5. out[i] = arguments.callee(obj[i]);
  6. }
  7. return out;
  8. }
  9. if (typeof obj === 'object') {
  10. var out = {}, i;
  11. for ( i in obj ) {
  12. out[i] = arguments.callee(obj[i]);
  13. }
  14. return out;
  15. }
  16. return obj;
  17. }

以上是关于深度复制数组或对象的主要内容,如果未能解决你的问题,请参考以下文章

深度复制的坑1对象assign复制的假深度,2数组slice复制的坑,3还有数组map复制的坑

对象数组 深度复制,支持对象嵌套数组数组嵌套对象

在javascript中将对象数组复制到另一个数组中(深度复制)

javascript 数组的深度复制

克隆数组

在 Angular 2 + TypeScript 中深度复制数组