咨询电话:
15628812133
15
2023/09

利用深拷贝实现关键词搜索功能

发布时间:2023-09-15 16:26:02
发布者:MaiMai
浏览量:
0

在做关键词搜索功能的时候,需要对后台给出的数据进行处理,用到了filter过滤器来筛选对象中的数据。首先在本地准备两个变量,一个用来存储后台数据,一个用来过滤筛选。如图:

获取后台数据

关键词搜索的过程便是对userList进行筛选的过程。注意每次过滤之前都需要令userList=userAllList,防止越筛越少。

浅拷贝

但是执行的时候,却发现第二次搜索无法正常实现。将userList和userAllList都打印了一下,发现每次搜索,两个变量都在被过滤筛选。

这里就需要引出深拷贝和浅拷贝的概念。深拷贝和浅拷贝都只针对于引用数据类型,浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存;深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。

显然,我们这里将userAllList赋值给userList的过程只是进行了一次浅拷贝,两个对象仍指向同一块内存,一个被修改了另一个也会跟着修改。

要实现深拷贝,最简单的方法就是利用JSON.stringify()与JSON.parse(),通过JSON.stringify把对象转成字符串,再用JSON.parse把字符串转成一个全的新的对象。有关JSON的内容可以点击此链接>>查看。

深拷贝

这样修改之后便可以成功实现搜索功能。    

关键词:
返回列表