#javascript #jquery
#javascript #jquery
Вопрос:
я пытаюсь удалить объект из массива, но он возвращает ошибку. мне нужно удалить блюда, в которых нет еды.
$(meals).each(function (indexmeal,meal) {
var hasfood = false;
$(foods).each(function (index,food) {
if(food.refeicao == meal.id)
{
hasfood = true;
}
});
if(!hasfood)
{
console.log('remove meal id:' meal.id);
meals.splice(meal.id,1);
}
но в результате это будет только первое блюдо, в котором есть еда, но результат не такой, я пробовал и не могу получить результат =/
Извините за мой плохой английский!
Комментарии:
1. Да, извините, но я перевел это, извините за мой плохой английский!
2. это сработало, я изменил цикл $.each на for и сработал, потому что я удалял элемент внутри взаимодействия.
Ответ №1:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
Вы должны использовать индекс в массиве meals для meal, а не meal.id .
Комментарии:
1. но meal.id тот же самый indexmeal, если вы сказали о «meals.spice (meal.id ,1)», спасибо за помощь!
2. Можете ли вы попробовать meals = meals.splice(meal.id , 1); ?
3. я пытался, не сработало, соединение удаляет каждый цикл, поэтому изменение индекса, чтобы исправить это, я создаю цикл for и переменную temp :), спасибо за помощь!