2017-04-22 69 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