过滤关联数组可找到最大值

时间:2013-10-17 14:21:21

标签: javascript arrays sorting

我有一个包含表单结果的关联数组,我需要先按最大值排序然后降序,或者甚至只能按降序打印到页面。

var results = {
  [title1, 5],
  [title2, 8],
  [title3, 2],
  [title4, 9],
  [title5, 1]
}

我目前正在通过从表单中获取值并将其存储在此数组中来创建“结果”。我可以使用Array.max获取最大值,但就是这样。我不知道如何订购或按降序吐出物品。我已经想过每次找到最大值,他们打印这个并删除对象,但我想知道是否有更有效的方法。

1 个答案:

答案 0 :(得分:0)

首先,您的代码不会显示有效的JavaScript。你的意思是两件事之一(缩写):

var results = { title1: 5, title2: 8 };

...或...

var results = [ ['title1', 5], ['title2', 8] ];

假设你的意思是第二个,你可以通过使用自定义比较器对数组进行排序来找到最大值:

results.sort(function(a,b) { return a[1] < b[1]; });

排序后,最大项目将位于数组的第一个索引中。

var largest = results[0];