2015-12-16 23 views
7

Czy istnieje prosty sposób, używając filter lub parse lub coś innego, aby przekształcić tablicę tak:Konwersja tablicę obiektów do tablicy właściwości

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"} 
]; 

do prostej tablicy wypełnionej jednego atrybutu obiektów zawarte w poprzedniej tablicy tak:

[0, 1, 2] 
+4

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

+0

Nie sądzę, że powrót w callbacku zadziała. –

+1

@ E. Cóż [spróbuj] (https://jsfiddle.net/5t9f4qqr/), a następnie ... – tforgione

Odpowiedz

15

Zastosowanie .map() funkcji:

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);

Powyższy fragment jest zmieniany, aby to działało.

0

Można zrobić coś takiego:

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

console.log(output); 
0

Można to zrobić w ten sposób:

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