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?

13voto

Sankalp Singha Punkte 4361

Wie wäre es mit jQuery.makeArray(obj)

So habe ich es in meiner App gemacht.

7voto

Black Mamba Punkte 11092

ES8 Weg leicht gemacht :

Die offizielle Dokumentation

    const obj = { x: 'xxx', y: 1 };
    let arr = Object.values(obj); // ['xxx', 1]
    console.log(arr);

6voto

Ivan Fretes Punkte 628

Die Lösung ist sehr einfach

var my_obj = {1:[Array-Data], 2:[Array-Data]}
Object.keys(my_obj).map(function(property_name){ 
    return my_obj[property_name]; 
});

3voto

<a href="http://jsfiddle.net/cse_tushar/eVHB2/" rel="nofollow noreferrer"><strong>Fiddle Demo</strong></a>

Erweiterung auf die Antwort von bjornd .

var myObj = {
    1: [1, [2], 3],
    2: [4, 5, [6]]
}, count = 0,
    i;
//count the JavaScript object length supporting IE < 9 also
for (i in myObj) {
    if (myObj.hasOwnProperty(i)) {
        count++;
    }
}
//count = Object.keys(myObj).length;// but not support IE < 9
myObj.length = count + 1; //max index + 1
myArr = Array.prototype.slice.apply(myObj);
console.log(myArr);

Référence

Array.prototype.slice()

Function.prototype.apply()

Object.prototype.hasOwnProperty()

Object.keys()

2voto

Supersharp Punkte 26165

Wenn Sie die Namen der Eigenschaften des Objekts als Werte beibehalten wollen. Beispiel:

var fields = {
    Name: { type: 'string', maxLength: 50 },
    Age: { type: 'number', minValue: 0 }
}

Utilice Object.keys() , Array.map() et Object.assign() :

var columns = Object.keys( fields ).map( p => Object.assign( fields[p], {field:p} ) )

Ergebnis:

[ { field: 'Name', type: 'string', maxLength: 50 }, 
  { field: 'Age', type: 'number', minValue: 0 } ]

Erläuterung:

Object.keys() listet alle Eigenschaften der Quelle auf; .map() wendet die => Funktion für jede Eigenschaft und gibt ein Array zurück; Object.assign() führt Name und Wert für jede Eigenschaft zusammen.

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