从阵列“删除”仍然存在

时间:2019-05-31 19:28:47

标签: javascript html

我正在尝试从数组中删除某些信息,但是当我搜索已删除的内容时,它仍然会显示。

我尝试了以下代码:

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

2 个答案:

答案 0 :(得分:1)

主要问题是您使用带方括号的slice。那不会调用函数。您需要使用圆括号。 其次,在findperson中,必须在while循环之前将find分配为false。

请在https://js.do/code/323115上查看改进的版本

致谢。

答案 1 :(得分:1)

splice方法未执行。更改为

people.names.splice(i,1)