2016-10-19 2 views
-1

Я пытаюсь удалить объект из массива, но он неверен. Мне нужно удалить блюда, которые не имеют еды.Javascript Splice не работает правильно

Array of meals

Result

$(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); 
     } 

но результат это будет только первое блюдо, что есть еда, но результат не это, я пытался и не может получить результат =/ Извините за мой плохой английский!

+0

Да, извините, но я перевел его, извините за мой плохой английский! – saidmrn

+0

он сработал, я изменил цикл $ .each for for и работал, потому что я удалял элемент внутри интернирования. – saidmrn

ответ

0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

Вы должны использовать индекс в массиве приема пищи для еды, а не meal.id.

+0

, но meal.id - это тот же индекс, если вы сказали о «meal.spice (meal.id, 1)», спасибо за помощь! – saidmrn

+0

Можете ли вы попробовать питание = питание.splice (meal.id, 1); ? – ardilgulez

+0

Я пытался, не работал, сращивание удаляет каждый цикл, поэтому индекс меняется, чтобы исправить его, я создаю цикл for и temp variable :), спасибо за помощь! – saidmrn

Смежные вопросы