Как отсортировать json по числовому значению?

Мое понимание заключается в том, что массивы хранятся более эффективно (т. е. как непрерывные блоки памяти против указателей на объекты Python), но я не знаю о преимуществах производительности. Кроме того, с массивами вы должны хранить примитивы одного типа, тогда как списки могут хранить что угодно.

-1
задан Nathan Hodgson 13 July 2018 в 21:59
поделиться

3 ответа

Мммм. Во-первых, создайте ассоциативный массив, если json генерируется из bakcend, например, в php, вы можете использовать функции для массивов заказов. ---> http://php.net/manual/en/array.sorting.php См. это: Преобразование объекта JavaScript с числовыми ключами в массив

0
ответ дан bashman 17 August 2018 в 12:07
поделиться
  • 1
    Ваша первая ссылка для PHP, а не Javascript. JS не имеет ассоциативных массивов. – Barmar 13 July 2018 в 22:32

// Code that can handle VERY large numbers by treating them as strings.


var a = {
  "362439239671087109": {
    "coins": 19
  },
  "178538363954003968": {
    "coins": 18
  },
  "234255082345070592": {
    "coins": 137
  }
};


function padWithZeros(s) {
  return ("000000000000000000000" + s).substr(-20);
}

var b = Object.keys(a);
b.sort(
  function(x, y) {
    var s1 = padWithZeros(a[x].coins);
    var s2 = padWithZeros(a[y].coins);

    if (s1 === s2) {
      return 0;
    }

    if (s1 > s2) {
      return 1;
    } else {
      return -1;
    }


  });
console.log(b);

0
ответ дан Jeremy J Starcher 17 August 2018 в 12:07
поделиться
var a = {"362439239671087109":{"coins":19},"178538363954003968":{"coins":18},"234255082345070592":{"coins":137}};
var b = Object.keys(a);
b.sort(function(x,y){return a[x].coins-a[y].coins});
console.log(b);
0
ответ дан SQL Hacks 17 August 2018 в 12:07
поделиться
  • 1
    Спасибо, что ответили так быстро, json добавлен и изменен очень часто, вместо этого я могу просто вызвать json-файл в (var a =) – Nathan Hodgson 13 July 2018 в 22:09
  • 2
    Извините, я не понимаю. Возможно, вы можете отредактировать свой вопрос, чтобы объяснить. – SQL Hacks 13 July 2018 в 22:12
  • 3
    nvm, я разработал его. Спасибо за вашу помощь :) – Nathan Hodgson 13 July 2018 в 22:20
  • 4
    Как я могу это сделать. В настоящее время они сортируют их по меньшей мере до большинства – Nathan Hodgson 14 July 2018 в 00:42
  • 5
    Если эти цифры будут продолжать расти, следите за превышением Number.MAX_SAFE_INTEGER. 9007199254740991 – Jeremy J Starcher 14 July 2018 в 05:51
Другие вопросы по тегам:

Похожие вопросы: