如何在对象值中按字母顺序排序?

时间:2017-04-22 07:05:50

标签: javascript sorting

我正在尝试排序对象(键,值)值并在控制台中打印。我知道对象键排序,但我不知道值排序。我尝试使用下面的代码对对象值进行排序。

countries1 = {
  IN: ["India"],
  AE: ["United Arab Emirates"],
  AT: ["Austria"],
  SV: ["El Salvador"],
  SX: ["Sint Maarten (Dutch part)"],
  CH: ["Switzerland"],
  CI: ["Côte d'Ivoire"],
  SZ: ["Swaziland"],
  CG: ["Congo"]
};

var keys = Object.keys(countries1),
    i,
    len = keys.length,
    keys1 = [];
var objects = {};

for (var x = 0; x < len; x++) {
  var k = keys[x];
  var j = countries1[k][0];
  objects[k] = j;
}

console.log(objects);

1 个答案:

答案 0 :(得分:0)

您无法在JavaScript中对对象进行排序。如果您控制对象使其成为一个数组,那么它更容易使用。否则,将其转换为数组并使用它。

e.g。

&#13;
&#13;
var countries1 = {
  IN: ["India"],
  AE: ["United Arab Emirates"],
  AT: ["Austria"],
  SV: ["El Salvador"],
  SX: ["Sint Maarten (Dutch part)"],
  CH: ["Switzerland"],
  CI: ["Côte d'Ivoire"],
  SZ: ["Swaziland"],
  CG: ["Congo"]
};

var sorted = Object
  .keys(countries1)
  .map(function(value, index) {
    return [countries1[value][0], value];
  })
  .sort();

console.log(sorted);
&#13;
&#13;
&#13;

为什么你可以在这里更好地解释一个对象:https://stackoverflow.com/a/1069705/1869996