Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript片不工作_Javascript_Arrays_Angularjs - Fatal编程技术网

JavaScript片不工作

JavaScript片不工作,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我试图克隆数组,然后使用slice()函数从中删除一个元素。但是,每当我单击要删除的元素时,它都会删除数组中除我单击的元素之外的所有元素 这是我目前的代码: deleteContact(contacts: Contacts){ if (contacts === null || contacts === undefined) { return; } const pos = this.contacts.indexOf(contacts); if (pos < 0) { return;

我试图克隆数组,然后使用slice()函数从中删除一个元素。但是,每当我单击要删除的元素时,它都会删除数组中除我单击的元素之外的所有元素

这是我目前的代码:

deleteContact(contacts: Contacts){
if (contacts === null || contacts === undefined) {
  return;
}

const pos = this.contacts.indexOf(contacts);
if (pos < 0) {
  return;
}

this.contacts = this.contacts.splice(pos, 1);
this.contactsListClone = this.contacts.slice();
this.contactListChangedEvent.next(this.contactsListClone);
}
删除联系人(联系人:联系人){
如果(触点===null | |触点===未定义){
返回;
}
const pos=此.contacts.indexOf(contacts);
如果(位置<0){
返回;
}
this.contacts=this.contacts.拼接(位置1);
this.contactsListClone=this.contacts.slice();
this.contactListChangedEvent.next(this.contactsListClone);
}

splice
返回已删除的元素,因此
此.contacts
在此行之后只有一个已删除的元素

this.contacts = this.contacts.splice(pos, 1);
就这么办吧

this.contacts.splice(pos, 1);

在克隆联系人之前,您将删除除联系人之外的所有项目。另外,您的问题说您使用的是
slice
,但您的代码使用的是
splice
可能重复的