Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c58a832

Browse files
committed
refactor and fix bug 2950
1 parent 4a8dd1c commit c58a832

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

src/traces/parcoords/axisbrush.js

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,34 +28,36 @@ function closeToCovering(v, vAdjacent) { return v * (1 - snapClose) + vAdjacent
2828
function ordinalScaleSnapLo(a, v, existingRanges) {
2929
if(overlappingExisting(v, existingRanges)) return v;
3030

31-
var aPrev = a[0];
32-
var aPrevPrev = aPrev;
33-
for(var i = 1; i < a.length; i++) {
34-
var aNext = a[i];
31+
var aHere = a[0];
32+
var aPrev = aHere;
33+
for(var i = 0; i < a.length - 1; i++) {
34+
var nextI = i + 1;
35+
var aNext = a[nextI];
3536

3637
// very close to the previous - snap down to it
37-
if(v < closeToCovering(aPrev, aNext)) return snapOvershoot(aPrev, aPrevPrev);
38-
if(v < aNext || i === a.length - 1) return snapOvershoot(aNext, aPrev);
38+
if(v < closeToCovering(aHere, aNext)) return snapOvershoot(aHere, aPrev);
39+
if(v < aNext || nextI === a.length - 1) return snapOvershoot(aNext, aHere);
3940

40-
aPrevPrev = aPrev;
41-
aPrev = aNext;
41+
aPrev = aHere;
42+
aHere = aNext;
4243
}
4344
}
4445

4546
function ordinalScaleSnapHi(a, v, existingRanges) {
4647
if(overlappingExisting(v, existingRanges)) return v;
4748

48-
var aPrev = a[a.length - 1];
49-
var aPrevPrev = aPrev;
50-
for(var i = a.length - 2; i >= 0; i--) {
51-
var aNext = a[i];
49+
var aHere = a[a.length - 1];
50+
var aPrev = aHere;
51+
for(var i = a.length - 1; i > 0; i--) {
52+
var nextI = i - 1;
53+
var aNext = a[nextI];
5254

5355
// very close to the previous - snap down to it
54-
if(v > closeToCovering(aPrev, aNext)) return snapOvershoot(aPrev, aPrevPrev);
55-
if(v > aNext || i === a.length - 1) return snapOvershoot(aNext, aPrev);
56+
if(v > closeToCovering(aHere, aNext)) return snapOvershoot(aHere, aPrev);
57+
if(v > aNext || nextI === 0) return snapOvershoot(aNext, aHere);
5658

57-
aPrevPrev = aPrev;
58-
aPrev = aNext;
59+
aPrev = aHere;
60+
aHere = aNext;
5961
}
6062
}
6163

0 commit comments

Comments
 (0)