Сортировать комплексный массив массивов по значению в - PullRequest
4 голосов
/ 16 февраля 2012

У меня есть массив массивов в javascript, настроенный внутри объекта, который я храню в локальном хранилище.Это высокая оценка для игры Phonegap в формате {'0':[[score,time],[score,time]}, где 0 - категория.Я могу видеть оценки, используя a[1][0].Сначала я хочу отсортировать по лучшим результатам.

var c={'0':[[100,11],[150,12]};
c.sort(function(){
    x=a[0];
    y=b[0];
    return y-x;
}

Тем не менее, b [0] всегда дает неопределенную ошибку.

Я новичок в Javascript, и это моя первая основнаятест как учебный опыт.Несмотря на то, что я рассмотрел несколько примеров, связанных со стековым потоком, я до сих пор не понял этого.

Ответы [ 3 ]

7 голосов
/ 16 февраля 2012

Вам необходимо объявить параметры для функции сравнения.

c.sort(function(){

должно быть

c.sort(function(a, b){

и вам нужно вызвать sort для массива, как указывает "не я", поэтому

var c={'0':[[100,11],[150,12]]};
c[0].sort(function(a, b){
    var x=a[0];
    var y=b[0];
    return y-x;
});

оставляет c в следующем состоянии:

{
  "0": [
    [150, 12],
    [100, 11]
  ]
}
0 голосов
/ 19 апреля 2018

var myArray = [ [11, 5, 6, 3, 10], [22,55,33,66,11,00], [32, 35, 37, 39], [1000, 1001, 1002, 1003, 999]];

_.eachRight(myArray, function(value) {
  var descending = _.sortBy(value).reverse();
  console.log(descending);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.js"></script>
0 голосов
/ 25 августа 2016
function largestOfFour(arr) {

    for(var x = 0; x < arr.length; x++){
        arr[x] = arr[x].sort(function(a,b){
            return b - a;
        });
    }

    return arr;
}

largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
...