2016-05-31 28 views
1

我有像下面的Javascript顯示結果值的散列陣列

a ={ 
    0: [0, "A9"], 
    2: [0, "A9.4"],   
    8: [0, "A9.1"], 
    6: [1, "A9.5"], 
    5: [0, "A9.2"], 
    7: [2, "A9.3"] 
}; 

我需要對應於每一個值的陣列的所述第二元件的排序後的數組的散列。

如果我的數組是在a = {key: [value_1_integer, value_2_string]}

形式,我需要通過value_2_string我的哈希排序,以便結果數組

result = [0, 8, 5, 7, 2, 6] 
+2

您需要發佈您的代碼,並解釋出了什麼毛病。堆棧溢出不是「寫我的代碼」服務,但我們會幫助,如果你嘗試並遇到問題:) – Archer

+2

我同意@Archer。此外,更好地用'hashmap'或類似的替換'hash' - 'hash'通常是指散列對象而不是數據結構產生的值。 –

+0

重複[獲取JavaScript對象鍵列表](http://stackoverflow.com/q/3068534/218196)和[按JavaScript中的字符串屬性值排序對象數組](http://stackoverflow.com/q/1129216/218196)。嘗試將問題分解爲子問題並找到解決方案。 –

回答

6

您可以用按鍵採用Array#sort回調,它採用屬性的第二個元素進行排序。

var object = { 0: [0, "A9"], 2: [0, "A9.4"], 8: [0, "A9.1"], 6: [1, "A9.5"], 5: [0, "A9.2"], 7: [2, "A9.3"] }, 
 
    keys = Object.keys(object).sort(function (a, b) { 
 
     return object[a][1].localeCompare(object[b][1]); 
 
    }); 
 

 
console.log(keys);