深拷贝数组值是对象的问题

27 阅读1分钟

因为数组中的每一个值都是对象,所以普通的深拷贝数组无效,需手写一个方法拷贝

    //深拷贝数组
    deepCopyArray(arr) {
      if (!Array.isArray(arr) || arr.length <= 0) {
        console.log("deepCopyArray的param必须是arry且不能为空")
        return
      }
      let newArr = [],
        obj = null
      for (let i = 0, len = arr.length; i < len; i++) {
        if (typeof arr[i] === "object") {
          obj = Object.assign({}, arr[i])
        } else {
          obj = arr[i]
        }
        newArr[i] = obj
        obj = null
      }
      return newArr
    }
  }