Как отсортировать по ключу двумерный массив в javascript?

Доброе утро!
Задался вопросом, как отсортировать двумерный массив с учетом, что "10" > "2"
По 0 ключу массива, перемещать позицию целого массива.
Массив:
[
  [
    "10",
    "Вафельница",
    "150 руб"
  ],
  [
    "5",
    "Вафельница",
    "150 руб"
  ],
  [
    "2",
    "Вафельница",
    "150 руб"
  ]
]

Хочу, что бы было вот так:
[
  [
    "2",
    "Вафельница",
    "150 руб"
  ],
  [
    "5",
    "Вафельница",
    "150 руб"
  ],
  [
    "10",
    "Вафельница",
    "150 руб"
  ]
]
  • Вопрос задан
  • 251 просмотр
Решения вопроса 2
DevMan
@DevMan
Ответ написан
Комментировать
Вариант 1
function sortFunction1(a, b) {
  if (a[0] === b[0]) {
    return 0;
  }
  else {
    return (+a[0] < +b[0]) ? -1 : 1;
  }
}

a.sort(sortFunction1);

Вариант 2
function sortFunction2(a, b) {
  if (a[0] === b[0]) {
    return 0;
  }
  else {
    return (a[0] - 0 < b[0] - 0) ? -1 : 1;
  }
}

a.sort(sortFunction2);


Вариант 3
function sortFunction3(a, b) {
  return a[0] - b[0];
}

a.sort(sortFunction3);

Нужно не забывать, что если мы пытаемся сравнить числа в виде строк, то результат скорее всего будет не тот, как мы ожидаем. Строки сравниваются посимвольно и "2" будет больше "10"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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