常用的深拷贝

一.使用JSON

let a=[{id:1,name:"aa"},{id:2,name:"bb"}]
let b=JSON.parse(JSON.stringify(a))

二.使用递归进行深拷贝
1.创建deepCopy.js

export function copy(obj) {
  let newobj = null; //声明一个变量用来储存拷贝之后的内容
  //判断数据类型是否是复杂类型,如果是则调用自己,再次循环,如果不是,直接赋值即可,
  //由于null不可以循环但类型又是object,所以这个需要对null进行判断
  if (typeof obj == "object" && obj !== null) {
    //声明一个变量用以储存拷贝出来的值,根据参数的具体数据类型声明不同的类型来储存
    newobj = obj instanceof Array ? [] : {};

    //循环obj 中的每一项,如果里面还有复杂数据类型,则直接利用递归再次调用copy函数
    for (var i in obj) {
      newobj[i] = copy(obj[i]);
    }
  } else {
    newobj = obj;
  }
  return newobj; //函数必须有返回值,否则结构为undefined
}

2.页面调用

import { copy } from "../xx/deepCopy";
let a=[{id:1,name:"aa"},{id:2,name:"bb"}]
let b=copy(a)

版权声明:本文为ch_13157582015原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。