Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获类型错误:data.reduce不是函数_Javascript_D3.js_Fetch - Fatal编程技术网

Javascript 未捕获类型错误:data.reduce不是函数

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) =>

我正在尝试使用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) => {
    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);
}