2016-05-14 10 views
1

Ich habe Array-Objekte wie unten, Wie dieses Format in Array von Objekten konvertieren und Schlüssel zu entfernen.So entfernen Sie Schlüssel aus Array von Objekt

{ 
    "9417702107": { 
    "name": "Sunny", 
    "phone": "9417702107", 
    "exists": true 
    }, 
    "8826565107": { 
    "name": "Gurwinder", 
    "phone": "8826565107", 
    "exists": true 
    } 
} 

Wie dies in folgendem Format mit Hilfe von JavaScript konvertieren:

[{ 
    "name": "Sunny", 
    "phone": "9417702107", 
    "exists": true 
}, { 
    "name": "Gurwinder", 
    "phone": "8826565107", 
    "exists": true 
}] 

Antwort

3

Verwenden sortieren eine einfache Schleife:

array = []; 
for (var key in obj) { 
    array.push(obj[key]); 
} 

Wie in den anderen Antworten Es gibt keine Garantie, dass die Elemente des Arrays in der gleichen Reihenfolge wie im Objekt sind.

+0

Danke, es funktioniert .. !!!! –

1

einfach diesen versuchen

var output = Object.keys(obj).map(function(key){ 
    return obj[key]; 
}) 

Hinweis, dass es keine Garantie dafür gibt, dass Reihenfolge der Elemente in output Array gleich sein wird wie in der Reihenfolge Schlüssel-Werte in Ihrem Objekt, wie Sie es sehen.

wenn die Reihenfolge wichtig ist, dann setzt ein neues Attribut order in dem Objekt aufgerufen selbst

var obj { 
"9417702107": 
{ 
    "name": "Sunny", 
    "phone": "9417702107", 
    "exists": true, 
    "order_sequence" : 1 
}, 
"8826565107": { 
    "name": "Gurwinder", 
    "phone": "8826565107", 
    "exists": true, 
    "order_sequence" : 1 
} 
} 

und dann nach dem Array konvertieren, können Sie auf dem order_sequence

var output = Object.keys(obj).map(function(key){ 
    return obj[key]; 
}).sort(function(a,b){ 
    return a.order_sequence - b.order_sequence; 
}); 
+0

aber bedenken Sie, dass es keine Garantie gibt, in welcher Reihenfolge die Elemente im resultierenden Array angezeigt werden. – Alnitak

+0

@Alnitak Ja, das ist richtig, wenn dieses Array dynamisch generiert wird. – gurvinder372

+0

@ gurvinder372 dann was ist alternativ. Vire. ?? –

0

Verwenden Sie Object.keys und for-cycle.

var keys = Object.keys(input), output = []; 
for (var i = 0, length = keys.length; i < length; ++i) 
    ouptput.push(input[keys[i]]); 
console.log(output); 

Einige Tipps:
- Zyklen in diesem Fall gibt bewegen Leistung als Map-Funktion, denn in der heutigen JS Motoren: weniger Funktionen aufrufen, eine höhere Leistung.
- For-each (für (var k in input) {}) ist langsamer als Object.keys und Zyklus für/while.

Dies ist akzeptabel für die heutige Implementierung Google V8 und Mozilla SpiderMonkey.

+0

gibt es keine Garantie, um gleich zu bleiben .. ?? –

Verwandte Themen