Сортировка объекта JavaScript по определенному значению свойства - PullRequest
0 голосов
/ 06 марта 2019

Если у меня есть объект JavaScript, такой как:

var currencies= {
  "EUR": 100, 
  "CHF": 15,
  "GPB": 75, 
  "JPN": 116, 
  "EUR": 12, 
  "JPN": 15, 
  "USD": 55, 
  "CHF": 22,
  "USD": 100, 
};

Есть ли способ отсортировать их в этом конкретном порядке?

var currencies= {
  "EUR": 12, 
  "EUR": 100, 
  "USD": 55, 
  "USD": 100, 
  "GPB": 75, 
  "CHF": 15,
  "CHF": 22,
  "JPN": 15, 
  "JPN": 116, 
};

1 Ответ

0 голосов
/ 06 марта 2019

Имея массив с объектами с одной парой ключ / значение, вы можете использовать эту пару для сортировки по ключу, а затем по значению.

var currencies= [{ EUR: 100 }, { CHF: 15 }, { GPB: 75 }, { JPN: 116 }, { EUR: 12 }, { JPN: 15 }, { USD: 55 }, { CHF: 22 }, { USD: 100 }],
    order = { EUR: 1, USD: 2, GBP: 3, CHF: 4, JPN: 5 };

currencies.sort((a, b) => {
    var aa = Object.entries(a)[0],
        bb = Object.entries(b)[0];

    return order[aa[0]] - order[bb[0]] || aa[1] - bb[1];
});

console.log(currencies);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...