国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

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

javascript - js 對(duì)象深拷貝和賦值

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

問(wèn)題描述

代碼中得到一個(gè)數(shù)組arr=[1,2,3];因?yàn)轳R上會(huì)被銷(xiāo)毀,所以不能直接賦值給對(duì)象Obj.a,請(qǐng)問(wèn)這種情況jquery如何寫(xiě),使得arr銷(xiāo)毀之后Obj.a=[1,2,3]?

問(wèn)題解答

回答1:

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

如果是指 delete arr,那么直接賦值也不會(huì)有問(wèn)題,如下圖:

javascript - js 對(duì)象深拷貝和賦值

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

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

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

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

回答2:

拷貝數(shù)組:

利用 slice

obj.a = arr.slice();

javascript - js 對(duì)象深拷貝和賦值

利用 JSON

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

javascript - js 對(duì)象深拷貝和賦值

回答3:

沒(méi)看懂你銷(xiāo)毀的意思。。。。至于深拷貝:

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 的話,可以使用對(duì)象展開(kāi)運(yùn)算符來(lái)拷貝。

obj.a = [...arr]

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 乐亭县| 菏泽市| 安化县| 开鲁县| 阜阳市| 永平县| 和政县| 长阳| 霍林郭勒市| 中宁县| 尖扎县| 凤冈县| 富顺县| 临汾市| 镇康县| 南溪县| 邢台市| 大姚县| 綦江县| 石河子市| 于都县| 苏州市| 奉新县| 绥芬河市| 临城县| 桃园市| 岚皋县| 卓资县| 会东县| 东港市| 固阳县| 丹阳市| 灌阳县| 长沙县| 安吉县| 黎川县| 五大连池市| 永康市| 阿拉尔市| 十堰市| 古蔺县|