@egorlisss

Как отсортировать массив с разными значениями key и value?

Есть массив:
[{"server1":"green"},{"server2":"red"}]

Пытаюсь отсортировать с помощью .sort() и вывести в консоль в формате:
Сервер: server1
Статус: green

Но не получается
  • Вопрос задан
  • 70 просмотров
Решения вопроса 2
@StockholmSyndrome
arr.sort((a, b) => {
  const getKey = (o) => Object.keys(o).find((key) => key.startsWith('server')).match(/\d+$/)[0];
  return getKey(a) - getKey(b);
});
Ответ написан
Комментировать
@makapohmgn
arr.sort(function(a,b){
for (i in a) {a = i;break;}
for (i in b) {b = i;break;}
return a > b ? 1 : -1;
});
for (i in arr) document.write(i + ': ' + arr[i]);

Возможно, есть вариант попроще)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@InfernoElegy
Во-первых, ключ должен быть во всех массивах одинаков.
Во-вторых, можете использовать lodash orderBy
_.orderBy(arr, "server", "asc") // 3 аргумент это порядок. asc - по увеличению, desc - наоборот
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы