439 Stimmen

Konvertierung eines JS-Objekts in ein Array mit jQuery

Meine Anwendung erstellt ein JavaScript-Objekt wie das folgende:

myObj= {1:[Array-Data], 2:[Array-Data]}

Aber ich brauche dieses Objekt als Array.

array[1]:[Array-Data]
array[2]:[Array-Data]

Also habe ich versucht, dieses Objekt in ein Array zu konvertieren, indem ich mit $.each durch das Objekt und das Hinzufügen des Elements zu einem Array:

x=[]
$.each(myObj, function(i,n) {
    x.push(n);});

Gibt es eine bessere Möglichkeit, ein Objekt in ein Array zu konvertieren, oder vielleicht eine Funktion?

19voto

Maxdow Punkte 1006

Seit ES5 gibt Object.keys() ein Array zurück, das die direkt für ein Objekt definierten Eigenschaften enthält (mit Ausnahme der in der Prototypenkette definierten Eigenschaften):

Object.keys(yourObject).map(function(key){ return yourObject[key] });

ES6 geht mit den Pfeilfunktionen noch einen Schritt weiter:

Object.keys(yourObject).map(key => yourObject[key]);

18voto

Stopi Punkte 396

Heutzutage gibt es eine einfache Möglichkeit, dies zu tun: Objekt.Werte() .

var myObj = {
    1: [1, 2, 3],
    2: [4, 5, 6]
};

console.log(Object.values(myObj));

Ausgabe:

[[1, 2, 3], [4, 5, 6]]

Dazu ist jQuery nicht erforderlich, es wurde in ECMAScript 2017 definiert.
Es wird von jedem modernen Browser unterstützt (vergessen Sie den IE).

17voto

Friedrich Punkte 1763

Die beste Methode wäre die Verwendung einer reinen Javascript-Funktion:

var myArr = Array.prototype.slice.call(myObj, 0);

15voto

nobody Punkte 10404
x = [];
for( var i in myObj ) {
    x[i] = myObj[i];
}

15voto

Aditya Singh Punkte 15030

ECMASCRIPT 5:

Object.keys(myObj).map(function(x) { return myObj[x]; })

ECMASCRIPT 2015 oder ES6:

Object.keys(myObj).map(x => myObj[x])

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X