Я пытаюсь решить эту проблему, так как 2 дня сейчас не уверены, как это решить. Я получаю эту ошибку белый пытается добавить данные в визуализацииd3.js проблемы с чтением dataset
Uncaught TypeError: Не удается прочитать свойство «длина» неопределенной
Это, кажется, связано с набором данных. Но независимо от того, что я делаю, я получаю эту ошибку, если набор данных console.log вне функции checkit (см. Ниже) возвращает неопределенные.
данных
[ {
"Continent":"Asia.Oceania",
"Country_Names":"Viet Nam",
"Total":142.9
},
{
"Continent":"Asia.Oceania",
"Country_Names":"Yemen",
"Total":20
},
{
"Continent":"Misc",
"Country_Names":"World marine bunkers",
"Total":602.2
},
{
"Continent":"Misc",
"Country_Names":"World aviation bunkers",
"Total":477.8
}
]
код
var svg_0 = d3.xml("drawing.svg", "image/svg+xml", function(xml) {
var importedNode = document.importNode(xml.documentElement, true);
d3.select("#viz").node().appendChild(importedNode);
var dataset;
function checkIt(data){
for (var i in data) {
var data_clean;
data_clean = data[i].Total
dataset = data_clean
console.log(dataset) //returns data
}
}
console.log(dataset)//returns undefined
d3.json("data.json", checkIt);
var svg = d3.select("#level_0")
.selectAll("path")
.data(dataset)
.enter()
});
после перемещения d3.json ("data.json", checkIt); в последней позиции в коде я все еще получаю эту ошибку. Я думаю, это потому, что набор данных var не может получить данные вне функции checkit, не уверен, как это сделать, хотя – Imo
Попробуйте поместить 'var svg = ....' Все, что блокируется функцией 'checkIt'. Вот что является основным предложением. – shershen
после этого я получаю эту ошибку Непринятый TypeError: d3.select (...). SelectAll (...). Data (...). Enter (...). Attr не является функцией – Imo