Hola, soy nuevo en el aprendizaje de javascript. ¿Pueden ayudarme? Aquí está el detalle:
tengo arreglos:
let todos = [ {id: 1, todo: "learning javascript"}, {id: 2, todo: "sleeping"}, {id: 3, todo: "playing"}, ];Todo lo que tengo que hacer, quiero eliminar un objeto de matriz que tiene un número de id: 2 por su id (exactamente id/número) que es por "número" de valor del objeto. NO por índice. Quiero hacer que CRUD funcione. Pero la función solo tiene un parámetro, que es ID:
DeleteByID(id) ---> by its number id, not by index.Entonces, el resultado será así:
let todos = [ {id: 1, todo: "learning javascript"}, {id: 3, todo: "playing"}, ];Ya probé mi código a continuación ...
function deleteByID(id) { for(var i in todos){ if(todos[i].id == id){ todos[i].splice(i, id); break; } } } console.log("Delete:", deleteByID(2));He probado mi código, pero no funciona. He intentado buscar en Google, pero todavía no tengo ninguna pista para la solución. Por favor, ayúdenme chicos. Gracias
Desea empalmar todos, no todos [i] y desea eliminar 1 elemento, no elementos "id"
y quieres devolver el elemento empalmado
Aquí tienes
let todos = [{ id: 1, todo: "learning javascript" }, { id: 2, todo: "sleeping" }, { id: 3, todo: "playing" }, ]; function deleteByID(id) { for (var i in todos) { if (todos[i].id == id) { return todos.splice(i, 1); } } } console.log("Delete:", deleteByID(2)); console.log("Todos:", todos);Tal vez algo como esto
let todos = [ {id: 1, todo: "learning javascript"}, {id: 2, todo: "sleeping"}, {id: 3, todo: "playing"}, ]; function deleteById(datas, id){ let index = datas.findIndex(data => data.id === id) datas.splice(index, 1) } console.log(todos) deleteById(todos, 2) console.log(todos)