东京热成人网站_XX另类XX伦理XXAV_亚洲精品无码成人AAA片_高清av中文字幕无码_手机看片国产欧美日韩高清_bd美妙第进化型

咨詢電話:
15628812133
15
2023/09

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

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

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

獲取后臺數(shù)據(jù)

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

淺拷貝

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

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

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

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

深拷貝

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

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