JavaScript オブジェクトには順序がありません。ほとんどのブラウザーは、プロパティが作成された順序で反復処理を行いますが、保証はないため、オブジェクトでの並べ替えはサポートされていません。
詳細については、こちらを参照してください: JavaScript はオブジェクト プロパティの順序を保証しますか?
また、 John Resig がこの問題について述べていることにも興味があるかもしれません。
並べ替え可能なリストが必要な場合は、オブジェクトの配列として保存する必要があります。
var masterList = [
{ key: 1, val: "google" },
{ key: 2, val: "yahoo" },
{ key: 3, val: "msn" },
{ key: 4, val: "stackoverflow" },
{ key: 5, val: "github" },
{ key: 6, val: "jsfiddle" },
{ key: 7, val: "amazon" },
{ key: 8, val: "ebay" }
];
次に、それらを並べ替えるには、通常の配列のsort
メソッドを使用します。
masterList = masterList.sort(function (a, b) {
return a.val.localeCompare( b.val );
});
これがフィドルです:http://jsfiddle.net/ASrUD/