@@ -63,52 +63,46 @@ var ThemeRiverSeries = SeriesModel.extend({
6363 */
6464 fixData : function ( data ) {
6565 var rawDataLength = data . length ;
66+ /**
67+ * Make sure every layer data get the same keys.
68+ * The value index tells which layer has visited.
69+ * {
70+ * 2014/01/01: -1
71+ * }
72+ */
73+ var timeValueKeys = { } ;
6674
6775 // grouped data by name
6876 var groupResult = groupData ( data , function ( item ) {
77+ if ( ! timeValueKeys . hasOwnProperty ( item [ 0 ] ) ) {
78+ timeValueKeys [ item [ 0 ] ] = - 1 ;
79+ }
6980 return item [ 2 ] ;
7081 } ) ;
7182 var layData = [ ] ;
7283 groupResult . buckets . each ( function ( items , key ) {
7384 layData . push ( { name : key , dataList : items } ) ;
7485 } ) ;
75-
7686 var layerNum = layData . length ;
77- var largestLayer = - 1 ;
78- var index = - 1 ;
79- for ( var i = 0 ; i < layerNum ; ++ i ) {
80- var len = layData [ i ] . dataList . length ;
81- if ( len > largestLayer ) {
82- largestLayer = len ;
83- index = i ;
84- }
85- }
8687
8788 for ( var k = 0 ; k < layerNum ; ++ k ) {
88- if ( k === index ) {
89- continue ;
90- }
9189 var name = layData [ k ] . name ;
92- for ( var j = 0 ; j < largestLayer ; ++ j ) {
93- var timeValue = layData [ index ] . dataList [ j ] [ 0 ] ;
94- var length = layData [ k ] . dataList . length ;
95- var keyIndex = - 1 ;
96- for ( var l = 0 ; l < length ; ++ l ) {
97- var value = layData [ k ] . dataList [ l ] [ 0 ] ;
98- if ( value === timeValue ) {
99- keyIndex = l ;
100- break ;
101- }
102- }
103- if ( keyIndex === - 1 ) {
90+ for ( var j = 0 ; j < layData [ k ] . dataList . length ; ++ j ) {
91+ var timeValue = layData [ k ] . dataList [ j ] [ 0 ] ;
92+ timeValueKeys [ timeValue ] = k ;
93+ }
94+
95+ for ( var timeValue in timeValueKeys ) {
96+ if ( timeValueKeys . hasOwnProperty ( timeValue ) && timeValueKeys [ timeValue ] !== k ) {
97+ timeValueKeys [ timeValue ] = k ;
10498 data [ rawDataLength ] = [ ] ;
10599 data [ rawDataLength ] [ 0 ] = timeValue ;
106100 data [ rawDataLength ] [ 1 ] = 0 ;
107101 data [ rawDataLength ] [ 2 ] = name ;
108102 rawDataLength ++ ;
109-
110103 }
111104 }
105+
112106 }
113107 return data ;
114108 } ,
@@ -293,4 +287,4 @@ var ThemeRiverSeries = SeriesModel.extend({
293287 }
294288} ) ;
295289
296- export default ThemeRiverSeries ;
290+ export default ThemeRiverSeries ;
0 commit comments