我想在客户端进行数据搜索,因为我需要在两个不同的变量中设置API的响应
代码如下。
public masterData:any = [];
public searchData:any = [];
this.httpClient.post("url", {id:'1'}).subscribe((res:any)=>{
if(res.success){
this.masterData = res.data;
this.searchData = res.data;
}
})
在这种情况下,当我搜索并设置searchData变量时,它也会同时更新 masterData
所以我不想更新它..
我一直想搜索 masterData 并在 searchData
中进行设置答案 0 :(得分:1)
使用点差运算符:
this.masterData = [ ...res.data ];
this.searchData = [ ...res.data ];
答案 1 :(得分:-1)
您可以使用lodash,因为它会对对象进行深层克隆。这是克隆对象的更完美方法。 传播算子和 Object.assign 不这样做。
函数为_.cloneDeep(obj2)
这里是一个例子:
var obj1 = _.cloneDeep(obj2);
还是,如果您想使用Spread operator
或Object.assign
,那么这里是一个示例。
var obj1 = [ ...obj2 ];
var obj1 = Object.assign(obj2);