2017-03-24 3 views
1

Beginnen Sie gerade Javascript und Angular zu lernen. Ich habe ein Array innerhalb eines Arrays.Den maximalen Wert von einem Array innerhalb eines Arrays erhalten

Dies ist meine Array-Struktur:

[[object1, object2], [Objekt3, Objekt 4]];

Ich möchte den höchsten Wert von object2 erhalten und 4.

Objekt Wenn i i

verwendet nur ein Array hatte
Math.max.apply(Math, array.map(function(o){return o.collectionID;})); 

Ist es möglich und wie kann ich den höchsten Wert aus einem Array abrufen innerhalb eines Arrays?

+0

es auf 'parentArray [n]'? –

+0

Können Sie Ihre Array-Struktur veröffentlichen? –

Antwort

0

Sie alle id mit Array#reduce für jegliche Tiefe Arrays sammeln konnte.

Dann nehmen Sie nur collectionID, wo es eingestellt ist.

var array = [[{}, { collectionID: 1 }], [{}, { collectionID: 2 }], [{}, { collectionID: 3 }], [{ collectionID: 42 }, { collectionID: 4 }]], 
 
    max = Math.max.apply(Math, array.reduce(function iter(r, a) { 
 
     return r.concat(Array.isArray(a) ? a.reduce(iter, []) : 'collectionID' in a ? a.collectionID : []); 
 
    }, [])); 
 
    
 
console.log(max);

+0

Danke für die schnelle Antwort! Mein Array-Format ist [[{Objekt}, {SammlungID: 1}], [{Objekt}, {SammlungID: 2}]] Wie kann ich das zweite Objekt im Array auswählen? – Urban

+0

Ich meine, das Objekt CollectionID ist nicht immer das zweite Array. – Urban

+0

Vielen Dank! Hat mir wirklich sehr geholfen. – Urban

Verwandte Themen