javascript - 从数组中“删除”仍然存在
问题描述
我正在尝试从数组中删除一些信息,但是当我去搜索已删除的内容时,它仍然会出现。
我试过这段代码:
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
解决方案
主要问题是您使用的是带方括号的切片。那不会调用该函数。您需要使用圆括号。其次,在 findperson 中,您必须在 while 循环之前将 found 赋值为 false。
请参阅https://js.do/code/323115的改进版本
问候。
推荐阅读
- c - 为什么我的 bison/flex 没有按预期工作?
- weka - 在 weka 的 KNN 中解释分类器输出参数,如 -K、-W、-A
- rust - 使用 Result 在控制流中产生副作用的推荐方法是什么?
- php - 为什么我们需要特定的类来处理请求和响应?
- android - Google Places Autocomplete - 如何访问原始用户输入
- python - 如何在数据框中的每一列中输入一些值
- symfony - 如何在 Doctrine 中为 Cast(X $comparisonOperator Y) 编写/扩展自定义 DQL 函数?(目标:显示相关对象)
- javascript - 我可以在 this.state 路径中使用函数参数作为通配符吗?前任。this.state.{参数}.value
- wordpress - 在特定的 WordPress 页面上禁用页面查询变量
- c - 运算符 = 和 != 在同一时间