2017-04-22 35 views
0

我想排序对象(键,值)值并在控制台中打印。我知道对象键排序,但我不知道值排序。我试图用波纹管代码对对象值进行排序。如何在对象值中排序字母顺序?

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);

回答

0

无法排序在JavaScript对象。如果你有对该对象的控制权,那么将它作为一个数组来代替,这更容易处理。否则,将其转换为数组并使用它。

例如

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);

为什么你不能更好的排序对象这里解释:https://stackoverflow.com/a/1069705/1869996