实现JS数据拷贝

实现JS数据拷贝

 

实现一个函数 clone ,可以对JavaScript 中的 5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。

复制代码
function clone(obj) {
  var o;
  switch(typeof obj){
    case "undefined":
        break;

    case "string":
        o =  obj + "";
        break;

    case "number":
        o = obj - 0;
        break;

    case  "boolean":
        o = obj;
        break;

    case "object":
        if(obj === null){
           o = null;
        }else{
          if(Object.prototype.toString.call(obj).slice(8,-1) === "Array"){
              o = [];
              for(var i = 0;i < obj.length; i++){
                o.push(clone(obj[i]))
               }
          }else{
              o = {};
              for (var k in obj){
                o[k] = clone(obj[k])
              }
          }
        }

        break;


    default:         o = obj;         break;  }

 return o; }
复制代码

 

(2)、对象的另一种深拷贝

try {
   const obj2 = JSON.parse(JSON.stringify(obj))
} catch (error) {
  const obj2 = {}
}

 

posted on   zhishiyv  阅读(909)  评论(0编辑  收藏  举报

(评论功能已被禁用)
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端

导航

统计

点击右上角即可分享
微信分享提示