我正在尝试从数组中删除某些信息,但是当我搜索已删除的内容时,它仍然会显示。
我尝试了以下代码:
function removeperson() {
var search = prompt("Type in someone's name to remove them.");
while(!found && i < people.names.length) {
if(people.names[i] == search){
found = true;
} else {
i++;
}
}
if(found){
people.names.splice[i, 1];
people.emails.splice[i, 1];
people.phonenums.splice[i, 1];
alert("Person successfully removed!");
found = false;
} else {
alert("That person is not here or has already been deleted.");
found = false;
}
i = 0;
}
但是,当我使用搜索功能搜索已删除的内容时,它仍然会出现。完整的代码可以在这里找到:https://js.do/nioiluc/321017
答案 0 :(得分:1)
主要问题是您使用带方括号的slice。那不会调用函数。您需要使用圆括号。 其次,在findperson中,必须在while循环之前将find分配为false。
请在https://js.do/code/323115上查看改进的版本
致谢。
答案 1 :(得分:1)
splice
方法未执行。更改为
people.names.splice(i,1)