2013-03-18 66 views
4

我对javascript很新,因为我目前正在jQuery Mobile中制作一个跨平台的web应用程序,我已经使用XML解析为HighCharts图表的例子,但是当我在我的系列数据中遇到null时未能画出任何一条线,并几乎将它变成散点图。Javascript parseFloat和空值

// push data points 
$(series).find('data point').each(function(i, point) { 
    seriesOptions.data.push( 
     parseFloat($(point).text()) 
    ); 
}); 

我不知道如何写一个if语句来检查,看它是否找到了一个空,如果是如何告诉它使用它...任何人都可以请帮助或点我在正确的方向因为我会喜欢我的图表是正确的,而不是在我有空值的情况下设置零值。

回答

0

随着JavaScript的一个快速谷歌如果statments我beleive我已经到了那里 - 谢谢Bjorn:0)你的回答让我得到了!

// push data points 
$(series).find('data point').each(function(i, point) { 
    var floatVal = parseFloat($(point).text()); 
      if (!isNaN(floatVal)) { 
       seriesOptions.data.push(floatVal); 
     } 
     else { 
     seriesOptions.data.push(null); 
     } 
     console.log(floatVal) 
    }); 
+0

不错!我很高兴你找到答案! :) – 2013-03-19 06:52:21

1

一个null检查在JavaScript中,如果就像任何其他C风格的语言:

if (thing == null) 

或者

if (thing != null) 

我觉得这是适用于大多数情况下,对我自己的节目,我是像我会说的那样写C#;然而,我发现其他人的代码依赖于从未被声明或设置的东西等,总而言之,它归结为检查null"undefined"的意大利面 - 是的,字符串,真的 - 和其他任何其他。

+0

您的回复非常感谢,你已经把有一定的道理,但我真的不知所措到这符合在那里我需要检查我的代码空 - 正如我说我对此非常新颖,迄今为止设法将我需要的东西拼凑起来,以达到最终结果。你会那么善良,以帮助我在哪里它与功能概述? – Palendrone 2013-03-18 15:33:09

4

好,parseFloat将返回“男”,如果它不是一个数字(null和undefined NaN的),所以你可以尝试做这样的:

// push data points 
$(series).find('data point').each(function(i, point) { 
    var floatVal = parseFloat($(point).text()); 
    if (!isNaN(floatVal)) { 
     seriesOptions.data.push(floatVal); 
    } 
}); 
+0

感谢您的回复Bjorn - 我已经把它放在了位置上,它的工作原理虽然不像预期的那样,但我需要返回的值来引用HighCharts的数字或空字来绘制空白处,空谎言。这是否需要将NaN转换为空或完全离开?我听说过isNull,但不是isNaN ... – Palendrone 2013-03-18 16:03:22