как сделать сортировку по угловым по 2 параметрам - PullRequest
0 голосов
/ 25 сентября 2019

Я хочу отсортировать угловую таблицу по 2 параметрам, например:

1-2 1-3 1-1 2-9 2-6 2-1

Вывод будет: 1-1 1-2 1-3 2-1 2-6 2-9

this.sortedData.sortingDataAccessor = (item, property) => {
  if (item[property]) {
    return Number(item[property].split('/')[1]) && Number(item[property].split('/')[0]);
  }
};

Ответы [ 3 ]

0 голосов
/ 25 сентября 2019

Если ваши данные находятся в строковом массиве, например: let myArray = [ '10/4', '1/1', '2/2', '1/3', '2/1'];

Тогда функция сравнения может отсортировать их по необходимости:

myArray.sort(
   function(a, b) {
      let aX = a.split('/');
      let bX = b.split('/');
      return aX[0] != bX[0] ? aX[0] - bX[0] : aX[1] - bX[1];
   });

Предполагается, что элементы являются действительными числами, разделеннымислэш.Будет обрабатывать номер> 9 ....

0 голосов
/ 26 сентября 2019

в этом случае:

  const x = Number(item[property].split('/')[0]);
  const y = Number(item[property].split('/')[1]);
  return [x,y];

1/3 1/33 1/4 1/333 1/5 возвращаем так: 1/3 1/33 1/333 1/4 1/5

some1 знает почему?

0 голосов
/ 25 сентября 2019

Вы можете использовать массив массивов.

Array.sort([[1,2],[1,3],[1,1],[2,9],[2,6],[2,1]])
...