2017-02-15 3 views
0

ich eine große Datenmenge haben, in dem jeder Eintrag dieser Form hat:Bestimmen Sie über mehrere Arrays eindeutige Werte (mit `d3.nest`)

{ 
    id: 'foo', 
    name: 'bar', 
    tags: ['baz', 'qux'] 
} 

Ich weiß, wie, sagen wir zu finden, die alle einzigartige name s in meine Daten-Set mit d3.nest:

d3.nest() 
    .key(d => d.name) 
    .rollup(d => d[0]) 
    .entries(data) 
    .map(d => d.key); 

Wie kann ich alle eindeutigen tag s in meinem Dataset finden, vorzugsweise d3.nest() mit? Ich könnte meinen eigenen Reducer rollen, würde aber lieber bei d3-Paradigmen bleiben, wenn möglich.

+0

Benötigen Sie es wirklich mit 'd3.nest()'. Dafür gibt es eine 1-Linien-Vanillelösung. –

+0

Nein. Ich beantwortete meine eigene dumme Frage unten. Danke @GerardoFurtado. – ericsoco

Antwort

0

Ok, manchmal ist es besser, einfach die Bibliothek zu überspringen und eine eigene Antwort zu erstellen. Es ist so einfach wie:

let allTags = Object.keys(data.reduce((acc, d) => { 
    d.tags.forEach(n => acc[n] = true); 
    return acc; 
}, {})); 

Vielleicht wird das jemand in der Zukunft helfen.

¯ \ _ (ツ) _/¯

Verwandte Themen