Javascript:如何处理json中的下一个项目 - 播放列表

时间:2010-06-18 18:28:28

标签: javascript jquery json

我有一个创建视频播放列表并以json格式返回的应用程序,视频ID是“密钥”,然后它附加了视频信息。视频ID不是连续的,“1234”,“4234”,“123”,“5454”是可能的ID等。

我有一个用于切换下一个视频的按钮,问题是我不知道如何获取数组中的下一个项目,除非我循环遍历整个数组,这似乎非常低效。我正在使用jQuery,所以如果有一个可用的功能非常好。

我的问题摘要:如何使用jQuery / javascript有效地选择数组中的下一项?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

由于您未提供任何代码,因此这是一般答案:

保存您当前正在播放的视频的索引。因为它可能从数组中的第一个视频开始,索引是0,例如:

var current = 0;

现在,只要您点击某个next按钮,就可以增加索引并获取相应的视频:

current++;
video = videos[current];