array, foods = [{ name: 'Apple', color: 'red' }, { name: 'Egg', color: 'white' }]; y esto es lo que probé,
let foods = [{ name: 'Apple', color: 'red' }, { name: 'Egg', color: 'white' }]; function removeRed(food) { food.filter(function (x) { if (x.color !== 'red') { return true; } else { return false; } }); return foods;Cuando llamo a la función como "removeRed(foods)", la salida proporciona ambos pares de propiedad-valor en mi matriz. Soy un estudiante principiante y esta es mi primera pregunta aquí. Espero que alguien responda :'D }
necesita devolver la salida del filtro. estabas devolviendo la matriz original
function removeRed(food) { return food.filter(function (x) { if (x.color !== 'red') { return true; } else { return false; } });Ponga retorno dentro de la función antes del filtro llamado
function removeRed(food) { return food.filter(function (x) { if (x.color !== 'red') { return true; } else { return false; } }); }Llamar a la función para ejecutar el código.
let foods = [{ name: 'Apple', color: 'red' }, { name: 'Egg', color: 'white' }]; removeRed(foods); // [{name: 'Egg', color: 'white'}]Mejor práctica Hacer siempre la función más genérica como esta:
function remove(food, color) { return food.filter(function (x) { if (x.color !== color) { return true; } else { return false; } }); } let foods = [{ name: 'Apple', color: 'red' }, { name: 'Egg', color: 'white' }]; remove(foods,'white'); // [{name: 'Apple', color: 'red'}] Una línea con ES6+ syntax :
const remove = (food, color) => food.filter(x=> x.color !== color);Use este código para filtrar elementos que no sean rojos
let foods = [{ name: 'Apple', color: 'red' }, { name: 'Egg', color: 'white' }]; const filtered = foods.filter(item => item.color !== 'red'); console.log(filtered)