getAllClients() {
this.clientsService.getClients()
.subscribe(
data => {
this.clients= data.splice(22, 1);
//this.clients = data;
},
error => {
// console.log(JSON.stringify(error))
}
);
}
答案 0 :(得分:0)
如果您阅读the documentation for splice,将会意识到这是一项可变的操作。这意味着使用拼接时,您将:1)返回数组的拼接部分。 2)修改原始数据对象。
示例:
let a = [1, 2, 3, 4];
const b = a.splice(2, 1); // b is now [3]
console.log(a); // the rest of the array [1, 2, 4]
因此,基本上不用用data.splice(22,1)保存this.clients。您应该先执行
data.splice(22, 1);
然后将结果分配给客户
this.clients = data;
我仍然建议您使用一种不变的方式来处理像Ramda function这样的数据
答案 1 :(得分:0)
是的,splice
更改数组并返回已删除的元素。毫不奇怪,未删除的元素在数组中。
如果要从数组中删除第22个元素并将该数组分配给this.clients
,这是正确的方法:
data.splice(22, 1);
this.client = data;
如果您想使this.client
少一个元素,但要使data
保持不变,则必须将其克隆:
this.client = data.slice();
this.client.splice(22, 1);