-5

我用以下形式的 json 数据填充了一个 highcharts 图表:[[x,y],[x,y],[x,y],[x,y]]

数据首先按 x 值排序,因为文件得到一个未排序的数字列表,然后计算数字出现的次数。这存储为 [number,count]。它绘制为 X,Y 以展示我们的数据库流量。

现在,我想进行排序,以便可以在列表中看到 10 个最常请求的值。如何通过此 Y 参数对 json 对象进行排序?谢谢!

样本数据:

[[4,1],[20,1],[43,1],[57,4],[59,1],[60,1],[61,1],[66,1],[68,3],[70,3],[72,2],[75,1],[77,3],[80,2],[81,3],[82,1],[83,1],[84,4],[85,5],[86,3],[87,1],[88,5],[90,7],[92,5],[95,2],[97,4],[98,4],[99,1],[100,6],[102,5],[103,3],[104,15],[105,3],[108,3],[109,2],[110,2],[111,2],[112,3],[113,7],[114,8],[115,11],[116,7],[117,15],[118,9],[119,4],[120,16],[121,7],[122,4],[123,6],[124,3],[125,1],[126,7],[127,5],[128,13],[129,5],[130,11],[131,13],[132,15],[133,17],[134,14],[135,11],[136,5],[137,5],[138,9],[139,7],[140,2],[141,1],[142,7],[143,2],[144,4],[145,11],[146,10],[147,9],[148,9],[149,7],[150,6],[151,12],[152,3],[153,9],[154,5],[155,6],[156,5],[157,5],[158,8],[159,10],[160,6],[161,2],[162,3],[163,45],[164,3],[165,8],[166,14],[167,12],[168,3],[169,5],[170,3],[171,8],[172,6],[173,9],[174,8],[175,11],[176,24],[177,23],[178,4],[179,3],[180,3],[181,11],[182,7],[183,7],[184,5],[185,7],[186,15],[187,11],[188,12],[189,9],[190,8],[191,6],[192,7],[193,4],[194,3],[195,12],[196,5],[197,8],[198,6],[199,16],[200,4],[201,14],[202,10],[203,9],[204,12],[205,8],[206,6],[207,6],[208,4],[209,12],[210,6],[211,7],[212,8],[213,12],[214,9],[215,7],[216,3],[217,11],[218,13],[219,9],[220,8],[221,12],[222,8],[223,9],[224,2],[225,5],[226,19],[227,9],[228,7],[229,11],[230,5],[231,3],[232,4],[233,11],[234,8],[235,11],[236,10],[237,5],[238,8],[239,15],[240,13],[241,9],[242,7],[243,7],[244,14]]
4

2 回答 2

1

使用带有自定义比较功能的排序:

data.sort(function(a, b){
  return a[1] - b[1];
});

例子:

var data = [[4,1],[20,1],[66,1],[68,3],[70,3],[72,2],[84,1],[96,4],[102,2]];
data.sort(function(a, b){
  return a[1] - b[1];
});
// data now contains:

   [[4,1],[20,1],[66,1],[84,1],[72,2],[102,2],[68,3],[70,3],[96,4]];

如果您想按降序排序,请改为这样做b[1] - a[1]

于 2013-06-24T21:47:54.880 回答
1

你可以使用js的排序功能

var myList = [[1,2], [1,1]];
myLisyt.sort(function(item1, item2) {return item1[1] - item2[1]});

结果是:[[1,1], [1,2]]

于 2013-06-24T21:55:58.380 回答