从json数据中检索元素时出现NaN错误

时间:2014-10-01 07:33:50

标签: javascript json svg

我是javascript的初学者

我有以下数据:

data[i] = '{"Name":"'+car[i]+'","Price":"'+retail[i]+'"}';

我想将零售价值[i]用作svg的y位置(' .dot')

 svg.selectAll(".dot")
  .data(data)
.enter().append("circle")
  .attr("class", "dot")
  .attr("r", 3.5)
  .attr("cx", function(d) { return 10; })
  .attr("cy", function(d) { return y(d.Price); })
  .style("fill", function(d) { return 'Red'; });

但我正在

Error: Invalid value for <circle> attribute cy="NaN" 

我也试过.attr(&#34; cy&#34;,function(d){return y(Number(d.Price));}) 我在做什么错误?

3 个答案:

答案 0 :(得分:1)

data [i]变量是一个字符串,只要它在您的问题中显示。要解决这个问题,要么将该变量作为对象(更好的解决方案),要么使用JSON.parse来解析该字符串并将其转换为对象

我为数据[i]构建对象

data[i] = {"Name":car[i],"Price":retail[i]};

答案 1 :(得分:0)

可能是数据是字符串格式,你试过吗? .attr("cy", function(d) { return y(Number(JSON.parse(d).Price)); })

答案 2 :(得分:0)

它显示,您正在传递NaN值(非数字)。所以你必须将值作为整数值传递..

使用parseInt()转换为整数..