3
我有保持像這樣4個對象屬性的對象的陣列的數據集的陣列:D3排序對象的2個對象屬性
var dataset = [{
key: 0,
brand: "A",
value: 10,
size: 10
}, {
key: 1,
brand: "B",
value: 11,
size: 10
}, {
key: 2,
brand: "C",
value: 12,
size: 9
}, {
key: 3,
brand: "D",
value: 13,
size: 9
}, {
key: 4,
brand: "E",
value: 14,
size: 9
}, {
key: 5,
brand: "G",
value: 15,
size: 9
}, {
key: 6,
brand: "F",
value: 16,
size: 9
}, {
key: 7,
brand: "H",
value: 17,
size: 9
}, {
key: 8,
brand: "I",
value: 18,
size: 9
}, {
key: 9,
brand: "J",
value: 19,
size: 9
}, {
key: 10,
brand: "K",
value: 20,
size: 9
}];
然後我建立一個圖表,D3表示value
爲水平線和size
作爲坐在線上的氣泡(請參閱http://jsfiddle.net/G74Aq/4/)。
除了key
屬性之外,我還爲每個上述對象屬性添加了一個排序函數,該屬性用於排序中的鍵函數。這在按名稱和值進行排序時工作正常,但是當按大小排序線條和排列不同的排序時。請注意,只有當鍵值上升到10時,纔會發生這種情況,這表明字典排序問題,我認爲我可以通過在< 10(其中沒有改變任何內容)之前的每個鍵號前面加0來繞過。
我的問題是:即使應用的排序方法都使用相同的鍵函數,爲什麼不同的元素以不同的方式排序呢?自然,我怎樣才能調整排序功能?
它絕對減少了代碼,但似乎不影響排序問題。我更新了小提琴(http://jsfiddle.net/G74Aq/8/)。難道是爲了確定x位置而在'd.key'值和數組索引'i'之間存在混淆? – lve