2015-06-14 2 views
0

Я пытаюсь получить следующий объект в объекте объектов (вы получаете мой дрейф). Я просматриваю список песен и пытаюсь определить следующую песню. Я использую флаг playing, чтобы проверить, если песня воспроизводится, то я получить индекс следующей композиции и добавить идентификатор к вар называется songПолучить следующий элемент массива, используя итератор с использованием флагов

var stop = false; 
    var song = null; 
    $.each(playlist,function(index, value){ 
     if(!value.played){ 
      if(stop){ 
       song = index; 
       return false; 
      } else { 
       if (value.playing) { 
        playlist[index].playing = false; 
        stop = true; 
       } 
      } 
     } 
    }); 
    playlist[song].playing = true; 
    playlist[song].played= true; 

здесь является то, что объект выглядит следующим образом:

{ 
'hash1': {name:'test',played:true,playing:true}, 
'hash2': {name:'test2',played:true,playing:true} 
} 

Проблема в том, что мой код только когда-либо воспроизводит первые две песни в плейлисте. Почему это, или есть лучший способ достичь этого?

С благодарностью

с.с. здесь функция на jsfiddle: http://jsfiddle.net/h1m7bx8g/

+0

A [jsFiddle] (http://jsfiddle.net/), который демонстрирует этот вопрос даст нам больше, чтобы быть в состоянии диагностировать проблема. – Xotic750

+0

вот он: http://jsfiddle.net/h1m7bx8g/ – user3343171

+0

Ваша логика должна быть разработана немного больше - переменная '' 'stop''' всегда будет ложной в том, как вы определили свой JSFiddle. – PressingOnAlways

ответ

0
$.each(playlist,function(index, value){ 
     if(!value.played){ 
      if(stop){ 
       song = index; 
       return false; 
      } else { 
       if (!value.playing) { 
        playlist[index].playing = false; 
        stop = true; 
       } 
      } 
     } 
    }); 

выходов

(index):87 hash2 
(index):87 hash3 
(index):87 hash4 
(index):87 hash5 
(index):87 hash1 
+0

Омг я идиот. Большое спасибо – user3343171

+0

np .. его нормально .... – vinayakj