提问者:小点点

如何为数组创建移除函数?


我正在尝试用JavaScript完成我的待办事项列表。 我使用一个数组,然后将添加的任务推送到它上面,像这样:

let todoitems: string[] = ["einkaufen", "gassi gehen", "fußball spielen"];
    
window.addEventListener("load", function () {
    var todofeld: HTMLElement = document.querySelector(".addlist");
    todolist();
    
    var input: HTMLInputElement = document.querySelector("#input");
    console.log(input);
    var button: HTMLElement = document.querySelector("#But1");
    
    button.addEventListener("click", function () {
        todoitems.push(input.value);
        todolist();
        input.value = "";
        console.log(todoitems);
    });
    
    function todolist(): void {
        todofeld.innerHTML = "";
        for (var index = 0; index < todoitems.length; index++) {
            todofeld.innerHTML += "<div>" + "<input type='checkbox'>" + todoitems[index] + "<i class='fas fa-trash-alt'id=delete></i>" + "</div>";
        }
        var total: HTMLElement = document.querySelector("#total");
        total.innerHTML = todoitems.length;
    }
}});

我如何添加代码删除任何特定列出的项目在单击?


共1个答案

匿名用户

就像@m02ph3u5所说的,您需要迭代您的数组。

但是,您可以使用array.filter:

click(toRemove: string): void {
todoitems = todoitems.filter((_:string) => { _ !== toRemove });
todolist();
}

这样,todoitems将被一个新数组替换,该数组包含除ToRemove元素以外的所有元素。

有关array.filter的详细信息:https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/array/filter