按特定属性值对JavaScript对象进行排序

时间:2019-03-06 09:00:55

标签: javascript arrays json sorting object

如果我有一个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 :(得分:0)

通过具有一个带有单个键/值对的对象的数组,您可以将该对用于按键然后按值排序。

print('Hello World')
myname = input('Whats your name?') 
print('Its good to meet You,' + myname +'!')
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);