Angular6 Splice返回已删除的图元,而不是返回所有未删除的其他图元
如果你读了,你会意识到这是一个可变的操作。这意味着当您使用拼接时,您将:1)返回阵列的拼接部分。2) 改变原始数据对象 例如:Angular6 Splice返回已删除的图元,而不是返回所有未删除的其他图元,angular6,Angular6,如果你读了,你会意识到这是一个可变的操作。这意味着当您使用拼接时,您将:1)返回阵列的拼接部分。2) 改变原始数据对象 例如: getAllClients() { this.clientsService.getClients() .subscribe( data => { this.clients= data.splice(22, 1); //this.clients = data; }, error =&
getAllClients() {
this.clientsService.getClients()
.subscribe(
data => {
this.clients= data.splice(22, 1);
//this.clients = data;
},
error => {
// console.log(JSON.stringify(error))
}
);
}
所以基本上不用保存这个.clients和data.splice(22,1)。你应该先执行
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);
我仍然建议您使用一种不可变的方式来处理数据,就像这样是的,
splice
更改数组并返回删除的元素。毫不奇怪,未删除的元素在数组中
如果要从数组中删除第22个元素并将该数组分配给this.clients
,这是一种正确的方法:
this.clients = data;
如果您希望this.client
少一个元素,但要使数据
保持不变,则必须克隆它:
data.splice(22, 1);
this.client = data;
这个问题回答了吗?
this.client = data.slice();
this.client.splice(22, 1);