Соединение Javascript не работает корректно

#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 :), спасибо за помощь!