2014-10-01 2 views
0

Я beginer в JavaScriptNaN ошибка при получении элемента из JSON данных

Я следующие данные:

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

Я хочу использовать значение розничной торговли [я], как у позиции SVG (». точка ')

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 ("cy", function (d) {return y (Number (d.Price)); }) Какая ошибка я делаю?

+2

возвращение попробовать у (ParseInt (d.Price, 10)) –

ответ

1

data [i] variable - строка, насколько это показано в вашем вопросе. Чтобы это исправить, либо сделать эту переменную объекта (лучше раствор) или использовать JSON.parse разобрать эту строку и преобразовать его в объект

Я бы построить объект для данных [я] как так

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

могут быть данные в формате строки, вы пытались .attr("cy", function(d) { return y(Number(JSON.parse(d).Price)); })

0

это показывает, вы передаете значение NaN (не число). Таким образом, вы должны передать значение как целое значение ..

Использование ParseInt() для преобразования в целое ..

+0

Даже пробовал, не делает Работа! – mribot

Смежные вопросы