2012-11-21 17 views
5

Powiel możliwe:
Does JavaScript Guarantee Object Property Order?Wkładanie właściwość w obiekcie JSON w określonej pozycji

chciałbym wiedzieć jak mogę wstawić właściwość obiektu JSON w określonej pozycji? Załóżmy tego obiektu javascript:

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

mam identyfikator i ciąg, takich jak:

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

Teraz chciałbym wstawić id między 0 i 1 (na przykład) i powinno być:

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

Jak mogę to zrobić? Czy istnieje rozwiązanie jQuery do tego?

+0

Nie sądzę, że specyfikacja ECMAScript mówi, że właściwości obiektu muszą zachować dowolne zamówienie. –

+0

Nie możesz. Właściwości obiektu JavaScript nie mają deterministycznej kolejności. –

+0

Jeśli potrzebujesz deterministycznego porządku indeksów numerycznych, powinieneś używać zamiast tego 'Array'' [] '. –

Odpowiedz

4

Aby określić kolejność, w jakiej elementy obiektu są umieszczone, trzeba użyć tablicę obiektów, takich jak to:

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

Następnie można przesunąć element do pewnej pozycji w tablica:

// 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" 

jednak będzie to uczynić już określonych wskaźników ({0:) prawie bezużyteczne.

Powiązane problemy