Javascript如何拆分JSON数组,从数字中找到最大值,然后获取名称?

Javascript如何拆分JSON数组,从数字中找到最大值,然后获取名称?,javascript,arrays,json,Javascript,Arrays,Json,我有一个带有数组的外部JSON文件,其中包含一些我需要的信息,但我一辈子都不知道如何拆分它 { "video": "incoming2.mp4", "description": "Updated every 30 minutes: - Created 2015-07-07 14:45:29 EST", "title": "304 Angstrom Last 3 days", "timestamp": "2015-07-07 14:45:29 EST",

我有一个带有数组的外部JSON文件,其中包含一些我需要的信息,但我一辈子都不知道如何拆分它

  {
    "video": "incoming2.mp4",
    "description": "Updated every 30 minutes: - Created 2015-07-07 14:45:29 EST",
    "title": "304 Angstrom Last 3 days",
    "timestamp": "2015-07-07 14:45:29 EST",
    "sort": ["20150707144529", "incoming2.mp4"],
    "thumb": "thumb/incoming2.png"
  },
这是JSON文件的一小部分,您应该注意的地方是
“排序”:[“20150707144529”,“incoming2.mp4”],
,我想在我的javascript中使用文件中的所有这些内容创建一个数组,并将它们拆分为数组中自己的数据,如下所示:
arrayName[0]
将是
“20150707144529”
arrayName[1]
将是
“incoming2.mp4”
。然后,在拆分后,我希望根据排序中的第一个数字找到最大值,并直接获取文件名,然后将其存储在变量中

(注:我知道我不太擅长措辞,所以如果你需要我澄清我的要求,就让我这么做)

编辑:

我如何调用json文件:

$(document).ready(function vidTitle() {
    $.getJSON("sun.json", function(json1) {
        //json stuff here
    });
});
编辑2:

这是(有点像但不是真的)我完整的(-ish)json文件

[
  {
    "video": "incoming.mp4",
    "description": "Updated every 30 minutes: - Created 2015-07-07 14:45:24 EST",
    "title": "193 Angstrom Last 3 days",
    "timestamp": "2015-07-07 14:45:24 EST",
    "sort": ["20150707144524", "incoming.mp4"],
    "thumb": "thumb/incoming.png"
  },
  {
    "video": "incoming2.mp4",
    "description": "Updated every 30 minutes: - Created 2015-07-07 14:45:29 EST",
    "title": "304 Angstrom Last 3 days",
    "timestamp": "2015-07-07 14:45:29 EST",
    "sort": ["20150707144529", "incoming2.mp4"],
    "thumb": "thumb/incoming2.png"
  },
  {
    "video": "incoming3.mp4",
    "description": "Updated every 30 minutes: - Created 2015-07-07 14:47:35 EST",
    "title": "171 Angstrom Last 3 days",
    "timestamp": "2015-07-07 14:47:35 EST",
    "sort": ["20150707144735", "incoming3.mp4"],
    "thumb": "thumb/incoming3.png"
  }
  //Basically, a bunch more of what is above with different data
]

您的算法可以是这样的:

  • 从文件中读取JSON
  • 将JSON解析为JavaScript对象变量(比如
    videos
  • max\u对象
    变量设置为
    null
  • 对于
    视频中的每个
    视频
    ,请查看
    视频的值。排序[0]
  • 如果
    video.sort[0]
    值大于
    max\u object.sort[0]
    (或者
    max\u object
    为空),则用
    video
    覆盖
    max\u object
  • 在步骤4中移动到下一个
    视频

  • 在此过程结束时,您的
    max\u对象
    变量将保存具有最大
    排序
    值的视频数据。

    以下是一个简化示例:

    $.getJSON('sun.json', function(json) {
        var max = 0;
        var maxIndex = 0;
    
        for (var index = 0; index < json.length; index++) {
            var val = parseInt(json[index].sort[0]);
            if (val > max) {
                max = val;
                maxIndex = index;
            }
        }
    
        alert('highest is ' + json[maxIndex].sort[1]);
    });
    
    我删除了JSON中我们不关心的所有属性。我在一个由
    data
    键控的数组中抛出了更多的样本数据。这只是搜索
    data
    数组中每个对象的最高
    sort
    值,跟踪当前最大值的索引。完成循环后,
    max索引
    包含数组中包含最高排序值的索引

    $.getJSON('sun.json', function(json) {
        var max = 0;
        var maxIndex = 0;
    
        for (var index = 0; index < json.length; index++) {
            var val = parseInt(json[index].sort[0]);
            if (val > max) {
                max = val;
                maxIndex = index;
            }
        }
    
        alert('highest is ' + json[maxIndex].sort[1]);
    });
    
    $.getJSON('sun.json',函数(json){
    var max=0;
    var-maxIndex=0;
    for(var index=0;indexmax){
    max=val;
    maxIndex=索引;
    }
    }
    警报('最高值为'+json[maxIndex].sort[1]);
    });
    
    输出

    最高收入为2.mp4


    发布您迄今为止尝试过的代码。如果没有代码,很难找到问题。这可能是一个愚蠢的问题,但我如何修改此代码以使用名为jQuery的外部文件:
    $.getJSON(“sun.json”,function(json1)
    ?@Calebbait在我的回答中看到我更新的代码。您可以将此代码放入success函数中。此外,我不确定JSON数据的结构,因此您可能需要修改使用数据的逻辑以使用正确的属性名和索引。我需要查看更多JSON数据来帮助您完成此操作。我编辑了我的帖子显示json文件的更多结构。好的,您可以将success函数的
    json
    (或者在您的例子中,您将其称为
    json1
    )参数作为数组处理。看看我更新的答案,我删除了对
    数据的所有引用,这是我在添加示例数据时引入的一个键。