2010-06-18 51 views
1

我有一個應用程序創建視頻播放列表並以json格式返回它們,視頻ID是「關鍵」,然後它將視頻信息附加到它。視頻ID不是順序的,「1234」,「4234」,「123」,「5454」是可能的ID等等。Javascript:如何處理json中的下一個項目 - 播放列表

我有一個切換下一個視頻的按鈕,問題是我不知道如何獲得數組中的下一個項目,除非我循環遍歷整個數組,看起來效率很低。我正在使用jQuery,所以如果有一個可用的功能會很好。

我的問題的總結:如何高效地選擇數組中的下一個項目使用jQuery/JavaScript?

+1

如果您發佈了JSON模式/示例,我將發佈一個解決方案。 – David 2010-06-18 18:31:23

回答

3

如果你在控制創建JSON的部分,我會改變它實際返回一個數組。如果沒有,我可能會通過你從JSON數據創建一次對象循環,創建一個數組:

var list, name; 
list = []; 
for (name in obj) { 
    list.push({ 
     key: name, 
     value: obj[name] 
    }); 
} 

然後你可以步行通過與數字索引。現在,我保留了名稱/密鑰。如果你不需要這個,如果你只需要這個值,那麼該數組可以直接保存這些值。


編輯啊,太好了,你的JSON的控制。然後我將輸出的JSON這樣的:

{ 
    videos: [ 
     "1234", 
     "4234", 
     "123", 
     "5454" 
    ] 
} 

一旦反序列化,這將導致與屬性videos其是陣列的對象。然後,您可以遍歷一個數字索引數組,因此,「下一個視頻」功能是:

function showNextVideo(videos, index) { 
    ++index; 
    if (index >= videos.length) { 
     index = 0; 
    } 
    showVideo(videos[index]); 
} 

你可以閱讀更多有關JSON這裏:http://json.org

+0

是的,我創建了JSON。你會如何建議我改變它返回一個數組,是否只是修改我的JSON格式化或更多?你有更多的信息可以聯繫我嗎?謝謝! – sam 2010-06-18 19:12:55

+0

@ user265331:我已經更新了答案。 – 2010-06-18 22:26:03

0

因爲你不提供任何代碼,這是一個更一般的答案:

保存您當前正在播放的視頻的索引。因爲它可能與陣列中的第一部影片開始,該指數是0,如:

var current = 0; 

現在,每當你點擊一些next按鈕,則會增加索引,並獲得相應的視頻:

current++; 
video = videos[current]; 
相關問題