2013-06-24 2 views
-5

Я заполнил диаграмму высоких диаграмм с данными json в форме: [[x, y], [x, y], [x, y], [x, y] ]javascript или массив сортировки по x координатам x, y

Данные сначала сортируются по значению x, так как файл получает несортированный список чисел, а затем подсчитывает количество раз, когда номер появляется. Это сохраняется как [число, счет]. Его построили как X, Y, чтобы продемонстрировать наш трафик базы данных.

Теперь я хочу сортировать, чтобы я мог видеть 10 наиболее часто запрашиваемых значений в списке. Как я могу отсортировать объект json по этому параметру Y? Благодаря!

Образец данных:

[[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]] 
+0

Почему я downvoted этот вопрос: http://meta.stackexchange.com/a/149138/133242 –

ответ

1

Использование sort с пользовательской функции сравнения:

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] вместо.

+0

Можете ли вы помочь объясните это? Я уже видел этот ответ, но мне кажется, что он сравнивает 2 переменные, а не сортирует весь массив. – Mattehicks

+0

@ user1771824 См. Ссылку https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort. Функция сортировки выполняет всю сортировку по массиву, и она встроена в Javascript. Вам просто нужно сказать, как сравнивать два элемента, и он может сортировать весь массив. – Paulpro

+0

@ user1771824 Если вы сортируете строки лексикографически, вам даже не нужно рассказывать, как их сравнивать. Он уже знает. Попробуйте: '['orange', 'banana', 'apple', 'pear', 'strawberry', 'blueberry']. Sort();' – Paulpro

1

Вы можете использовать sort функцию JS

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

результат: [[1,1], [1,2]]

+0

Спасибо всем! Это работает, я думаю, я читал это неправильно. Он возвращает объект, который я могу выполнить, очень хорошо. – Mattehicks