【问题标题】:Javascript: how to handle a next item in json - playlistJavascript:如何处理 json 中的下一个项目 - 播放列表
【发布时间】:2010-06-18 18:28:27
【问题描述】:

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

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

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

【问题讨论】:

  • 如果您发布 JSON 架构/示例,我将发布解决方案。

标签: javascript jquery json


【解决方案1】:

如果您可以控制创建 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

【讨论】:

  • 是的,我创建了 JSON。您如何建议我将其更改为返回一个数组,这只是修改我的 JSON 格式的方式还是更多?你有更多信息可以链接到我吗?谢谢!
【解决方案2】:

由于您没有提供任何代码,因此这是一个更笼统的答案:

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

var current = 0;

现在,每当您点击某个next 按钮时,您都会增加索引并获得相应的视频:

current++;
video = videos[current];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 2011-05-21
    • 2012-05-16
    相关资源
    最近更新 更多