У меня есть массив, который выглядит так:

  serials = [ serial : 8H51495999, material : 17, status: 01
              serial : 8H51495143, material : 17, status: 01
              serial : 8Z51495143, material : 17, status: 01 ]

Мне нужно отсортировать по серийному, поэтому порядок будет

              serial : 8H51495143, material : 17, status: 01
              serial : 8H51495999, material : 17, status: 01
              serial : 8Z51495143, material : 17, status: 01

Как я могу этого достичь? Спасибо тим

2
Tim 24 Апр 2017 в 09:34

2 ответа

Лучший ответ

Предполагая, что у вас есть массив объектов и значения являются строками, вы можете использовать String#localeCompare для обратного вызова сортировки с Array#sort.

var serials = [{ serial : '8H51495999', material : '17', status: '01' }, { serial : '8H51495143', material : '17', status: '01' }, { serial : '8Z51495143', material : '17', status: '01' }];

serials.sort(function (a, b) {
    return a.serial.localeCompare(b.serial);
});

console.log(serials);
1
Nina Scholz 24 Апр 2017 в 06:38

Давайте попробуем Array.prototype. сортировать () в JS

serials.sort(function(a, b) {
      if (a.serial < b.serial) {
        return -1;
      }
      if (a.serial > b.) {
        return 1;
      }
      // a must be equal to b
      return 0;
    });
2
Tai Le 24 Апр 2017 в 06:36