Javascript 从带有对象的数组中取出特定值

Javascript 从带有对象的数组中取出特定值,javascript,arrays,higher-order-functions,array-splice,Javascript,Arrays,Higher Order Functions,Array Splice,制作一个todo应用程序,但在删除数组中的特定值时遇到了麻烦,我做错了什么?我应该如何纠正它?拼接的作用与移位法相同 还有其他方法或数据结构可用于todo应用程序 const form = document.querySelector("form"); const todoInput = document.querySelector(".todoInput"); const list = document.querySelector(".rend

制作一个todo应用程序,但在删除数组中的特定值时遇到了麻烦,我做错了什么?我应该如何纠正它?拼接的作用与移位法相同

还有其他方法或数据结构可用于todo应用程序

const form = document.querySelector("form");
const todoInput = document.querySelector(".todoInput");
const list = document.querySelector(".renderListHere");

const todoList = [];

form.addEventListener("submit", (event) => {
    event.preventDefault();

    const text = todoInput.value.trim();

    if (text === "") {
        console.log("enter something");
    } else {
        addTodo(text);
        todoInput.value = "";
    }
});

const addTodo = (text) => {
    const todo = {
        id: Date.now(),
        text,
    };

    todoList.push(todo);
    renderTodo(todo);
};

const renderTodo = ({ text, id }) => {
    const li = document.createElement("li");

    li.classList.add("todoListItems");

    li.innerHTML = `
    <span> ${text} </span>
    <button id="${id}" class="del-btn"> x
    </button>
        `;

    list.append(li);
};

list.addEventListener("click", (event) => {
    if ((event.target.className = "del-btn")) {
        const arr = todoList.filter(
            (item) => item.id === parseInt(event.target.id)
        );
         todoList.splice(arr, 1);

    }
});
const form=document.querySelector(“表单”);
const todoInput=document.querySelector(“.todoInput”);
const list=document.querySelector(“.renderListHere”);
const todoList=[];
form.addEventListener(“提交”,(事件)=>{
event.preventDefault();
const text=todoInput.value.trim();
如果(文本==“”){
console.log(“输入某物”);
}否则{
addTodo(文本);
todoInput.value=“”;
}
});
常量addTodo=(文本)=>{
常数todo={
id:Date.now(),
文本,
};
todoList.push(todo);
renderTodo(todo);
};
常量renderTodo=({text,id})=>{
const li=document.createElement(“li”);
li.classList.add(“todoListItems”);
li.innerHTML=`
${text}
x
`;
列表。追加(li);
};
list.addEventListener(“单击”,(事件)=>{
如果((event.target.className=“del btn”)){
const arr=todoList.filter(
(item)=>item.id==parseInt(event.target.id)
);
todoList.拼接(arr,1);
}
});

我想你误解了
过滤方法

Array.filter()
函数返回一个新数组,因此在您的情况下,可以使用:

todoList = todoList.filter(
   (item) => item.id !== parseInt(event.target.id)
);

因此,您仅使用id不同于
event.target.id
的项筛选
todoList
,并将结果应用于相同的
todoList
变量。

我认为您误解了
筛选方法

 const arr = todoList.filter(
        (item) => item.id !== parseInt(event.target.id)
    );
     
}
Array.filter()
函数返回一个新数组,因此在您的情况下,可以使用:

todoList = todoList.filter(
   (item) => item.id !== parseInt(event.target.id)
);
因此,您只使用id不同于
event.target.id
的项筛选
todoList
,并将结果应用于相同的
todoList
变量

 const arr = todoList.filter(
        (item) => item.id !== parseInt(event.target.id)
    );
     
}
它返回一个新数组

您不需要splice()

它返回一个新数组


你不需要splice()

你能提供HTML吗?谢谢你的关心,我知道了,既然你是一名网络开发人员,我需要和你谈谈,先生。prph8什么?…关于自由职业者/工作问你想知道什么。你能提供HTML吗?谢谢你的关心,我知道了,你是一名网络开发人员,我需要和你谈谈,先生。prph8什么?…关于自由职业者/工作问你想知道什么。谢谢,我需要将数组类型从const改为let,它起作用了。谢谢,我需要将数组类型从const改为let,它起作用了。起作用了,shukran,起作用了,shukran,