2016-08-20 4 views
2

JavaScriptオブジェクトのプロパティの元の順序を確認するにはデバッグが必要ですが(少なくともChromeのdevtoolsでは)console.log()は私にアルファベット順のオブジェクトを表示します。console.logのオブジェクトプロパティの元の順序を表示します。

例:

var obj = { 
    z: 1, 
    t: 2, 
    y: 3, 
    a: 4, 
    n: 5, 
    k: 6 
} 

console.log(obj)がこれを示しています

Object {z: 1, t: 2, y: 3, a: 4, n: 5…} 
a:4 
k:6 
n:5 
t:2 
y:3 
z:1 

//expected (needed) original order 
z: 1 
t: 2 
y: 3 
a: 4 
n: 5 
k: 6 
+1

ごとにあなたが本当にjavascriptオブジェクトのプロパティを持っていると信じているそうであるように、JSオブジェクトは、列挙の順序を維持注文? –

+3

オブジェクトは順不同のコレクションです。特定の注文を得る保証はありません。あなたのデバッグ方法のような音が微調整される必要があるかもしれません。 –

+1

配列を使用する必要があります。オブジェクトでは、反復処理するたびにプロパティが同じ順序になるとは限りません。配列はその順序を保証します。 – sniels

答えて

6

console.logは確かにソートプロパティは、いくつかのケースでは、あなたは、例えば、順序を保持しているJSON.stringifyを使用することができません

console.log(JSON.stringify(obj, null /*replacer function */, 4 /* space */)) 

NB:人気の信念に反してOwnPropertyKeys specification(挿入順に整数は最初、その後、他のプロパティ)

関連する問題