我有一个创建视频播放列表并以json格式返回的应用程序,视频ID是“密钥”,然后它附加了视频信息。视频ID不是连续的,“1234”,“4234”,“123”,“5454”是可能的ID等。
我有一个用于切换下一个视频的按钮,问题是我不知道如何获取数组中的下一个项目,除非我循环遍历整个数组,这似乎非常低效。我正在使用jQuery,所以如果有一个可用的功能非常好。
我的问题摘要:如何使用jQuery / javascript有效地选择数组中的下一项?
答案 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];