關(guān)于arr和obj復(fù)制改變原數(shù)據(jù)的問題

var arr = [1,2,3];
var obj = {
    i : 1,
    j : 2
}

var arr1 = arr;
arr1[1] = 11;
console.log(arr);
console.log(arr1);

var obj1 =obj;
obj1.i = 11;
console.log(obj);
console.log(obj1);

運(yùn)行結(jié)果:

image.png

我們發(fā)現(xiàn),我們在改變arr1(obj1)后,原來的arr(obj)也跟著變了,原因是:復(fù)合類型的變量存的是指針
解決辦法:
可能我們第一會想到的是遍歷賦值,這樣雖然能解決問題,但是卻拉低了性能。
在js里面,我們可以這樣處理:數(shù)組用一個(gè)空數(shù)組連接,obj用一個(gè)空obj連接。

var arr = [1,2,3];
var obj = {
    i : 1,
    j : 2
}

var arr1 = arr.concat([]);
arr1[1] = 11
console.log(arr);
console.log(arr1);

var obj1 = Object.assign({},obj);
obj1.i = 11;
console.log(obj);
console.log(obj1);

運(yùn)行結(jié)果:

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 簡歷就是推銷自己的廣告,對求職者來說很重要,那么如何寫好簡歷呢?不廢話,直接上干貨吧。 一、撰寫簡歷的思路 1.簡...
    e1a1b13d986e閱讀 633評論 2 6
  • 有個(gè)讀者寫給我一封長長的郵件,說覺得自己活的好失敗,很想復(fù)讀一年,考到另一個(gè)學(xué)校去。 我以為那是小姑娘高考發(fā)揮失常...
    陶瓷兔子閱讀 2,763評論 10 94
  • 《太陽的后裔》本周要大結(jié)局了?。?! 最近宋歐巴劇里劇外各種忙碌 忙著接見韓國總統(tǒng) 忙著拍廣告 忙著和兄弟雨中漫步 ...
    安小韓工作室閱讀 266評論 0 0
  • 昨天晚上失眠了一個(gè)晚上,不為別的,就是冷靜了想了一下,結(jié)果過了12點(diǎn)就再也睡不著了,輾轉(zhuǎn)又反側(cè),總之是2點(diǎn)多才睡著...
    青葡萄哈哈閱讀 147評論 0 0

友情鏈接更多精彩內(nèi)容