2012-10-22 14 views
10

Ich wollte den Unterschied zwischen Sortierfunktion und aufsteigender Funktion in d3 wissen. Ich suche nach einer Möglichkeit, die Daten in meiner Tabelle in aufsteigender Reihenfolge der ausgewählten Spalte neu anzuordnen.d3: Unterschied zwischen Sortierung und aufsteigend

Danke.

Antwort

16

Array.sort() werden die Werte alphabetisch in aufsteigender Reihenfolge sortieren. Array.sort(d3.ascending) sortiert die Werte natürlich in aufsteigender Reihenfolge. Der Unterschied kann gesehen werden, wenn Sie eine Liste von Zahlen sortieren.

var a = [3,26,1,7]; 

console.log(a.sort()); 
// prints [1,26,3,7] 

console.log(a.sort(d3.ascending)); 
// prints [1,3,7,26] 

Weitere Informationen darüber, wie sort Arbeiten finden https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/sort.

+1

Warum kann dieses Beispiel Zahlen mit nur sort() sortieren? http://bl.ocks.org/3719724 –

+3

Es tut es nicht. Er übergibt einen benutzerdefinierten Vergleicher an 'sort':' tr.sort (Funktion (a, b) {Rückkehr (b [k]/b.Total) - (a [k]/a.Total);}) '. Die anonyme Funktion (a, b) ist der benutzerdefinierte Komparator, der den Vergleich tatsächlich durchführt. d3.ascending ist nur eine Abkürzung für 'function (a, b) { Rückgabe a b? 1: 0; } ' – Bill

+0

Danke für die Klarstellung! Kannst du auch erklären, warum dieses Teil im Beispiel benötigt wird? 'var alters = d3.keys (states [0]). Filter (funktion (taste) { return key! =" Zustand "&& key! =" Total "; });' –

Verwandte Themen