@@ -16,14 +16,14 @@ module.exports = LinearScaleBase.extend({
16
16
var me = this ;
17
17
var opts = me . options ;
18
18
var chart = me . chart ;
19
- var data = chart . data ;
20
- var datasets = data . datasets ;
19
+ var datasets = chart . data . datasets ;
21
20
var isHorizontal = me . isHorizontal ( ) ;
22
21
var DEFAULT_MIN = 0 ;
23
22
var DEFAULT_MAX = 1 ;
23
+ var datasetIndex , meta , value , data , i , ilen ;
24
24
25
- function IDMatches ( meta ) {
26
- return isHorizontal ? meta . xAxisID === me . id : meta . yAxisID === me . id ;
25
+ function IDMatches ( scaleMeta ) {
26
+ return isHorizontal ? scaleMeta . xAxisID === me . id : scaleMeta . yAxisID === me . id ;
27
27
}
28
28
29
29
// First Calculate the range
@@ -32,24 +32,20 @@ module.exports = LinearScaleBase.extend({
32
32
33
33
var hasStacks = opts . stacked ;
34
34
if ( hasStacks === undefined ) {
35
- helpers . each ( datasets , function ( dataset , datasetIndex ) {
36
- if ( hasStacks ) {
37
- return ;
38
- }
39
-
40
- var meta = chart . getDatasetMeta ( datasetIndex ) ;
41
- if ( chart . isDatasetVisible ( datasetIndex ) && IDMatches ( meta ) &&
42
- meta . stack !== undefined ) {
35
+ for ( datasetIndex = 0 ; datasetIndex < datasets . length ; datasetIndex ++ ) {
36
+ meta = chart . getDatasetMeta ( datasetIndex ) ;
37
+ if ( chart . isDatasetVisible ( datasetIndex ) && IDMatches ( meta ) && meta . stack !== undefined ) {
43
38
hasStacks = true ;
39
+ break ;
44
40
}
45
- } ) ;
41
+ }
46
42
}
47
43
48
44
if ( opts . stacked || hasStacks ) {
49
45
var valuesPerStack = { } ;
50
46
51
- helpers . each ( datasets , function ( dataset , datasetIndex ) {
52
- var meta = chart . getDatasetMeta ( datasetIndex ) ;
47
+ for ( datasetIndex = 0 ; datasetIndex < datasets . length ; datasetIndex ++ ) {
48
+ meta = chart . getDatasetMeta ( datasetIndex ) ;
53
49
var key = [
54
50
meta . type ,
55
51
// we have a separate stack for stack=undefined datasets when the opts.stacked is undefined
@@ -69,30 +65,31 @@ module.exports = LinearScaleBase.extend({
69
65
var negativeValues = valuesPerStack [ key ] . negativeValues ;
70
66
71
67
if ( chart . isDatasetVisible ( datasetIndex ) && IDMatches ( meta ) ) {
72
- helpers . each ( dataset . data , function ( rawValue , index ) {
73
- var value = me . _parseValue ( rawValue ) ;
68
+ data = datasets [ datasetIndex ] . data ;
69
+ for ( i = 0 , ilen = data . length ; i < ilen ; i ++ ) {
70
+ value = me . _parseValue ( data [ i ] ) ;
74
71
75
- if ( isNaN ( value . min ) || isNaN ( value . max ) || meta . data [ index ] . hidden ) {
76
- return ;
72
+ if ( isNaN ( value . min ) || isNaN ( value . max ) || meta . data [ i ] . hidden ) {
73
+ continue ;
77
74
}
78
75
79
- positiveValues [ index ] = positiveValues [ index ] || 0 ;
80
- negativeValues [ index ] = negativeValues [ index ] || 0 ;
76
+ positiveValues [ i ] = positiveValues [ i ] || 0 ;
77
+ negativeValues [ i ] = negativeValues [ i ] || 0 ;
81
78
82
79
if ( value . min === 0 && ! opts . ticks . beginAtZero ) {
83
80
value . min = value . max ;
84
81
}
85
82
86
83
if ( opts . relativePoints ) {
87
- positiveValues [ index ] = 100 ;
84
+ positiveValues [ i ] = 100 ;
88
85
} else if ( value . min < 0 || value . max < 0 ) {
89
- negativeValues [ index ] += value . min ;
86
+ negativeValues [ i ] += value . min ;
90
87
} else {
91
- positiveValues [ index ] += value . max ;
88
+ positiveValues [ i ] += value . max ;
92
89
}
93
- } ) ;
90
+ }
94
91
}
95
- } ) ;
92
+ }
96
93
97
94
helpers . each ( valuesPerStack , function ( valuesForType ) {
98
95
var values = valuesForType . positiveValues . concat ( valuesForType . negativeValues ) ;
@@ -103,14 +100,15 @@ module.exports = LinearScaleBase.extend({
103
100
} ) ;
104
101
105
102
} else {
106
- helpers . each ( datasets , function ( dataset , datasetIndex ) {
107
- var meta = chart . getDatasetMeta ( datasetIndex ) ;
103
+ for ( datasetIndex = 0 ; datasetIndex < datasets . length ; datasetIndex ++ ) {
104
+ meta = chart . getDatasetMeta ( datasetIndex ) ;
108
105
if ( chart . isDatasetVisible ( datasetIndex ) && IDMatches ( meta ) ) {
109
- helpers . each ( dataset . data , function ( rawValue , index ) {
110
- var value = me . _parseValue ( rawValue ) ;
106
+ data = datasets [ datasetIndex ] . data ;
107
+ for ( i = 0 , ilen = data . length ; i < ilen ; i ++ ) {
108
+ value = me . _parseValue ( data [ i ] ) ;
111
109
112
- if ( isNaN ( value . min ) || isNaN ( value . max ) || meta . data [ index ] . hidden ) {
113
- return ;
110
+ if ( isNaN ( value . min ) || isNaN ( value . max ) || meta . data [ i ] . hidden ) {
111
+ continue ;
114
112
}
115
113
116
114
if ( me . min === null || value . min < me . min ) {
@@ -120,9 +118,9 @@ module.exports = LinearScaleBase.extend({
120
118
if ( me . max === null || me . max < value . max ) {
121
119
me . max = value . max ;
122
120
}
123
- } ) ;
121
+ }
124
122
}
125
- } ) ;
123
+ }
126
124
}
127
125
128
126
me . min = isFinite ( me . min ) && ! isNaN ( me . min ) ? me . min : DEFAULT_MIN ;
0 commit comments