From 1c40d50097209468ce1c197f1959ff852ee107f0 Mon Sep 17 00:00:00 2001 From: Tanner Linsley Date: Sat, 24 Oct 2015 01:22:12 -0600 Subject: [PATCH] recursive and accurate getRightValue --- src/core/core.scale.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/core/core.scale.js b/src/core/core.scale.js index 02fa87ce6..cc702284e 100644 --- a/src/core/core.scale.js +++ b/src/core/core.scale.js @@ -317,11 +317,22 @@ }, // Get the correct value. NaN bad inputs, If the value type is object get the x or y based on whether we are horizontal or not - getRightValue: function(rawValue) { - if (isNaN(rawValue) || rawValue === null || typeof(rawValue) === 'undefined') { + getRightValue: function getRightValue(rawValue) { + // Null and undefined values first + if (rawValue === null || typeof(rawValue) === 'undefined') { return NaN; } - return typeof(rawValue) === "object" ? (this.isHorizontal() ? rawValue.x : rawValue.y) : rawValue; + // isNaN(object) returns true, so make sure NaN is checking for a number + if (typeof(rawValue) === 'number' && isNaN(rawValue)) { + return NaN; + } + // If it is in fact an object, dive in one more level + if (typeof(rawValue) === "object") { + return getRightValue(this.isHorizontal() ? rawValue.x : rawValue.y); + } + + // Value is good, return it + return rawValue; }, // Used to get the value to display in the tooltip for the data at the given index