首页 > 解决方案 > 从数组中“删除”仍然存在

问题描述

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

我试过这段代码:

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/noiluc/321017

标签: javascripthtml

解决方案


主要问题是您使用的是带方括号的切片。那不会调用该函数。您需要使用圆括号。其次,在 findperson 中,您必须在 while 循环之前将 found 赋值为 false。

请参阅https://js.do/code/323115的改进版本

问候。


推荐阅读