2012-11-21 17 views
5

Mögliche Duplizieren:
Does JavaScript Guarantee Object Property Order?an einer bestimmten Position in JSON-Objekt einfügen Objekt

Ich mag würde wissen, wie ich eine JSON-Objekt-Eigenschaft an einer bestimmten Position einfügen kann? Lassen Sie sich dieses Objekt Javascript annehmen:

var data = { 
    0: 'lorem', 
    1: 'dolor sit', 
    2: 'consectetuer' 
} 

Ich habe eine ID und eine Zeichenfolge, wie:

var id = 6; 
var str = 'adipiscing'; 

Nun würde Ich mag die id zwischen 0 und 1 (zum Beispiel) einzusetzen und es sein sollte wie:

data = { 
    0: 'lorem', 
    6: 'adipiscing', 
    1: 'dolor sit', 
    2: 'consectetuer' 
} 

Wie kann ich das tun? Gibt es dafür eine jQuery-Lösung?

+0

Ich glaube nicht, die ECMAScript-Spezifikation besagt, dass Objekteigenschaften eine Reihenfolge beibehalten müssen. –

+0

Sie können nicht. Die Objekteigenschaften von JavaScript haben keine deterministische Reihenfolge. –

+0

Wenn Sie eine deterministische Reihenfolge der numerischen Indizes benötigen, sollten Sie stattdessen ein 'Array'' [] 'verwenden. –

Antwort

4

Um eine Reihenfolge, in der Elemente eines Objekts angeben platziert sind, müssen Sie eine Reihe von Objekten verwenden, wie folgt aus:

data = [ 
    {0: 'lorem'}, 
    {1: 'dolor sit'}, 
    {2: 'consectetuer'} 
] 

Sie dann ein Element zu einer bestimmten Position in der schieben kann Array:

// Push {6: 'adipiscing'} to position 1 
data.splice(1, 0, {6: 'adipiscing'}) 

// Result: 
data = [ 
    {0: 'lorem'}, 
    {6: 'adipiscing'}, 
    {1: 'dolor sit'}, 
    {2: 'consectetuer'} 
] 
// Access it: 
data[0][0] //"lorem" 

dies wird jedoch die Indizes machen Sie angegeben haben ({0:) ziemlich nutzlos.

Verwandte Themen