2016-05-22 6 views
0

Wenn ich durch einen JSON-Baum schaue, suche ich nach allen Abonnements eines Kunden. In Ruby, kann ich sagenKarte in JS flatten?

customer.map(&:subscriptions).flatten 

Gibt es eine gleichwertige Funktion für Karte flattern in JS?

+1

Bitte fügen Sie einige Daten hinzu. –

Antwort

0

Sie können map und reduce Methoden von Javascript verwenden Array:

customers = [{ subscriptions: [{ id: 1 }, { id: 2}]}, { subscriptions: [{ id: 5 }]}] 

customers 
    .map(function(it) { return it.subscriptions }) 
    .reduce(function(memo, it) { return memo.concat(it) }, []) 

Oder einige ES6 Syntax Zucker mit:

customers = [{ subscriptions: [{ id: 1 }, { id: 2}]}, { subscriptions: [{ id: 5 }]}] 

customers 
    .map(({ subscriptions }) => subscriptions) 
    .reduce((memo, it) => (memo.concat(it)), []) 

auch von Ruby kommen, können Sie RubyJS interessant finden - welche Ports der Ruby-Standardbibliothek zu Javascript. So können Sie schreiben

R(customers, true).map(({ subscriptions }) => subscriptions).flatten().toNative()