久久无码中文字幕_日韩精品无码一本二本三_久久精品呦女暗网_欧美一级夜夜爽_久久精品国产99久久99久久久

15
2023/09

利用深拷貝實(shí)現(xiàn)關(guān)鍵詞搜索功能

發(fā)布時(shí)間:2023-09-15 16:26:02
發(fā)布者:MaiMai
瀏覽量:
0

在做關(guān)鍵詞搜索功能的時(shí)候,需要對(duì)后臺(tái)給出的數(shù)據(jù)進(jìn)行處理,用到了filter過濾器來(lái)篩選對(duì)象中的數(shù)據(jù)。首先在本地準(zhǔn)備兩個(gè)變量,一個(gè)用來(lái)存儲(chǔ)后臺(tái)數(shù)據(jù),一個(gè)用來(lái)過濾篩選。如圖:

獲取后臺(tái)數(shù)據(jù)

關(guān)鍵詞搜索的過程便是對(duì)userList進(jìn)行篩選的過程。注意每次過濾之前都需要令userList=userAllList,防止越篩越少。

淺拷貝

但是執(zhí)行的時(shí)候,卻發(fā)現(xiàn)第二次搜索無(wú)法正常實(shí)現(xiàn)。將userList和userAllList都打印了一下,發(fā)現(xiàn)每次搜索,兩個(gè)變量都在被過濾篩選。

這里就需要引出深拷貝和淺拷貝的概念。深拷貝和淺拷貝都只針對(duì)于引用數(shù)據(jù)類型,淺拷貝只復(fù)制指向某個(gè)對(duì)象的指針,而不復(fù)制對(duì)象本身,新舊對(duì)象還是共享同一塊內(nèi)存;深拷貝會(huì)另外創(chuàng)造一個(gè)一模一樣的對(duì)象,新對(duì)象跟原對(duì)象不共享內(nèi)存,修改新對(duì)象不會(huì)改到原對(duì)象。

顯然,我們這里將userAllList賦值給userList的過程只是進(jìn)行了一次淺拷貝,兩個(gè)對(duì)象仍指向同一塊內(nèi)存,一個(gè)被修改了另一個(gè)也會(huì)跟著修改。

要實(shí)現(xiàn)深拷貝,最簡(jiǎn)單的方法就是利用JSON.stringify()與JSON.parse(),通過JSON.stringify把對(duì)象轉(zhuǎn)成字符串,再用JSON.parse把字符串轉(zhuǎn)成一個(gè)全的新的對(duì)象。有關(guān)JSON的內(nèi)容可以點(diǎn)擊此鏈接>>查看。

深拷貝

這樣修改之后便可以成功實(shí)現(xiàn)搜索功能。    

關(guān)鍵詞:
返回列表