js中的轉殖方法

2022-07-16 13:03:08 字數 1716 閱讀 3209

1、如果轉殖物件是基本型別,直接複製就行

1

var str1 = 'abc'

2var str2 =str1

3 console.log(str2) //

abc4 str1 = '123'

5 console.log(str2) //

abc

2、如果不是基本型別,就不能直接複製,以陣列為例

1

var a=[1,2,3,4];

2var b=a;

3var c=b;

4c.pop();

56 console.log(a) //

[1,2,3]

7 console.log(b) //

[1,2,3]

8 console.log(c) //

[1,2,3]

轉殖的幾種方法:

一、比較簡單的遍歷陣列賦值

1

var a = [1,2,3,4];

2var b =;

3for(var i = 0; i < a.length; i++)

6 console.log(b) //

[1,2,3,4]

二、slice方法

原理:從乙個陣列中擷取出新的陣列

接收兩個引數,第乙個引數開始的下標,第二個引數結束的下標(不包含)。

原陣列不變。如果只設定乙個引數,表示擷取到最後。如果不寫引數,表示實現陣列的複製

1

var arr1 = [1, 2, 3, 4]

2var arr2 = arr1.slice(0)

3 console.log(arr2) //

[1,2,3,4]

4 arr1 = [4, 3, 2, 1]

5 console.log(arr2) //

[1,2,3,4]

三、assign實現深淺拷貝

淺拷貝:

1

var obj = ;

2var copy =object.assign({}, obj);

3 console.log(copy); //45

​6var arr = [1,2,3];

7var copy =object.assign(, arr);

8 console.log(copy); //

[1,2,3]

深拷貝:

1     let arr1 = [1,2,3,4,5];

2 let arr2 =json.parse(json.stringify(arr1));

3 console.log(arr2) //

[1,2,3,4,5]

四、concat方法

原理:拼接陣列

返回拼接後的新陣列,原陣列不受影響

1     let arr1 = [1,2,3,4];

23 let arr2 =arr1.concat()4​

5 arr2[1] = 9

6 console.log(arr1, arr2) //

[1,2,3,4], [1,9,3,4]

js中的轉殖

1.如果轉殖物件是基本型別,直接複製就可以 2.不是基本型別就不可以直接複製,以陣列為例 轉殖的幾種方法 1.比較簡單的遍歷陣列賦值 方法 1 作用 從乙個陣列中擷取出新的陣列 2 格式 陣列名.slice begin,end begin表示開的下標 end表示結束的下標,但是在擷取時不包含結束下標...

JS 物件轉殖的方法

1.object.assign 物件淺複製 created by itw zhangdl on 2018 1 10.let obj let obj2 object.assign obj obj.friends.push 4 console.log obj2 2.object.creat 詳情看es6...

js原生轉殖方法

為了看得清楚一點,引數變數屬性 命名都是隨意 主要思路 五點 1,遍歷物件 2,判斷是不是原始值 typeof instanceof,tostring,constructor 這些方法都可以 3,判斷是陣列還是物件 4,建立相應的陣列或物件 5,使用遞迴 var obj function copy ...