亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - js 對象深拷貝和賦值

瀏覽:66日期:2023-02-17 16:58:33

問題描述

代碼中得到一個數(shù)組arr=[1,2,3];因為馬上會被銷毀,所以不能直接賦值給對象Obj.a,請問這種情況jquery如何寫,使得arr銷毀之后Obj.a=[1,2,3]?

問題解答

回答1:

一般情況下很少會在 JS 中遇到“銷毀”。然后,我不明白你所謂的立即銷毀是指什么?

如果是指 delete arr,那么直接賦值也不會有問題,如下圖:

javascript - js 對象深拷貝和賦值

如果你是要改變 arr 的內(nèi)容。那么可以復(fù)制一個數(shù)組(有幾種方法,concat 只是其中一種)

Obj.a = [].concat(arr);

如果確實需要深拷貝,jQuery.fn.clone(),不過貌似有一些限制。

如果其它數(shù)據(jù),自己寫深拷貝還是有點難度也比較麻煩,不如用 Lodash 的 cloneDeep()

回答2:

拷貝數(shù)組:

利用 slice

obj.a = arr.slice();

javascript - js 對象深拷貝和賦值

利用 JSON

obj.a = JSON.parse( JSON.stringify(arr));

javascript - js 對象深拷貝和賦值

回答3:

沒看懂你銷毀的意思。。。。至于深拷貝:

function cloneObj(obj){ if( !obj || typeof obj == 'string' ){return obj; } else if ( obj instanceof Array ){return [].concat(obj); } else {var tempObj = {};for( var key in obj ){ tempObj[key] = cloneObj(obj[key]);}return tempObj; }}回答4:

如果你使用 ES2015 的話,可以使用對象展開運算符來拷貝。

obj.a = [...arr]

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 国产一区二区三区四区偷看 | 亚洲视频一区在线观看 | eeuss影院www在线观看免费 | 岛国一级毛片 | 999国产一区二区三区四区 | 亚洲免费一级视频 | 香蕉视频在线观看黄 | 99精品国产成人一区二区在线 | 欧美zzzz| 亚洲第一区在线观看 | 中国japanesevideo乱 | 欧美日韩免费一区二区在线观看 | 91av爱爱| 中文字幕日本一区久久 | 国产成人精品美女在线 | 精品国产_亚洲人成在线高清 | 99久久精品费精品国产一区二区 | 一级片视频在线 | 青草香蕉精品视频在线观看 | 欧美高清免费精品国产自 | 91一区二区三区四区五区 | 日本黄色免费在线观看 | 高清日韩在线 | 亚洲欧美在线一区 | 欧美唯爱网 | 国产精品单位女同事在线 | 久久这里有精品 | 正在播放宾馆露脸对白视频 | 国产成人高清精品免费5388密 | 国产精品视频第一区二区 | 久久成人免费 | 国产欧美日韩不卡一区二区三区 | 99久久免费精品视频 | 国产精品欧美亚洲韩国日本不卡 | 精品全国在线一区二区 | 国产成人免费片在线视频观看 | 亚洲一级片免费 | 四虎澳门永久8848在线影院 | 国产91观看 | 成人性色生活片免费网 | 九色婷婷 |