2015-12-16 12 views
7

Gibt es eine einfache Art und Weise, mit filter oder parse oder etwas anderes ein Array wie folgt zu konvertieren:Convert Array von Objekten in ein Array von Eigenschaften

var someJsonArray = [ 
    {id: 0, name: "name", property: "value", otherproperties: "othervalues"}, 
    {id: 1, name: "name1", property: "value1", otherproperties: "othervalues1"}, 
    {id: 2, name: "name2", property: "value2", otherproperties: "othervalues2"} 
]; 

in ein einfaches Array mit einem Attribut der Objekte gefüllt in der vorherige Array wie folgt enthalten:

[0, 1, 2] 
+4

Was ist 'someJsonArray.map (function (o) {return o.id;})' ? [Doc über Karte] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) – tforgione

+0

Ich glaube nicht, Rückkehr in einem Callback wird sogar funktionieren. –

+1

@ E.K Nun [versuchen Sie es] (https://jsfiddle.net/5t9f4qqr/) dann ... – tforgione

Antwort

15

Verwenden .map() Funktion:

finalArray = someJsonArray.map(function (obj) { 
    return obj.id; 
}); 

Snippet

var someJsonArray = [ 
 
    {id: 0, name: "name", property: "value", therproperties: "othervalues"}, 
 
    {id: 1, name: "name1", property: "value1", otherproperties: "othervalues1"}, 
 
    {id: 2, name: "name2", property: "value2", otherproperties: "othervalues2"} 
 
]; 
 
var finalArray = someJsonArray.map(function (obj) { 
 
    return obj.id; 
 
}); 
 
console.log(finalArray);

Die obige Snippet geändert wird es funktioniert.

0

Man könnte so etwas tun:

var len = someJsonArray.length, output = []; 
for(var i = 0; i < len; i++){ 
    output.push(someJsonArray[i].id) 
} 

console.log(output); 
0

Sie können auf diese Weise tun:

var arr = []; 
for(var i=0; i<someJsonArray.length; i++) { 
    arr.push(someJsonArray[i].id); 
}