實現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 = {}
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM