Javascript 未捕获类型错误:data.reduce不是函数
我正在尝试使用d3.js v5解包csv以进行数据可视化,我收到以下控制台错误:Javascript 未捕获类型错误:data.reduce不是函数,javascript,d3.js,fetch,Javascript,D3.js,Fetch,我正在尝试使用d3.js v5解包csv以进行数据可视化,我收到以下控制台错误: Uncaught TypeError: data.reduce is not a function 下面是代码中出现错误的部分: sample(); function sample() { const data = d3.csv('../static/sample.csv'); uncount = (data, accessor) => data.reduce((arr, item) =>
Uncaught TypeError: data.reduce is not a function
下面是代码中出现错误的部分:
sample();
function sample() {
const data = d3.csv('../static/sample.csv');
uncount = (data, accessor) =>
data.reduce((arr, item) => {
const count = accessor(item)
for (let i = 0; i < count; i++) {
arr.push({
...item
})
}
return arr
}, []);
const boxes = uncount(data, d => d.boxes);
const nest = d3
.nest()
.key(d => d.venue)
.entries(boxes);
}
这是因为D3V5使用fetch api返回承诺吗
这是因为D3V5使用fetch API返回承诺吗
对。承诺没有reduce
方法。一个简单的解决方案是将sample
更改为an,然后更改值
sample();
async function sample() {
const data = await d3.csv('../static/sample.csv');
uncount = (data, accessor) =>
data.reduce((arr, item) => {
const count = accessor(item)
for (let i = 0; i < count; i++) {
arr.push({
...item
})
}
return arr
}, []);
const boxes = uncount(data, d => d.boxes);
const nest = d3
.nest()
.key(d => d.venue)
.entries(boxes);
}
sample();
异步函数示例(){
const data=wait d3.csv('../static/sample.csv');
取消计数=(数据、访问器)=>
数据减少((arr,项目)=>{
常数计数=存取器(项)
for(设i=0;id.box);
常数nest=d3
.nest()
.键(d=>d.场地)
.条目(方框);
}
请注意,异步函数总是返回一个承诺
sample();
async function sample() {
const data = await d3.csv('../static/sample.csv');
uncount = (data, accessor) =>
data.reduce((arr, item) => {
const count = accessor(item)
for (let i = 0; i < count; i++) {
arr.push({
...item
})
}
return arr
}, []);
const boxes = uncount(data, d => d.boxes);
const nest = d3
.nest()
.key(d => d.venue)
.entries(boxes);
}