function saveAsCSV() {
  
  let simulationOutput = new p5.Table();

  let newRow = simulationOutput.addRow();
  
  simulationOutput.addColumn("Total Population");
  simulationOutput.addColumn("Human Population");
  simulationOutput.addColumn("Predator Population");
  simulationOutput.addColumn("Prey Population");
  simulationOutput.addColumn("Food Population");

  for(var i = 1; i<totalDynamic.length; i++){
    simulationOutput.addRow().setNum("Total Population", int(totalDynamic[i]));
  }
  
  for(let j = 1; j<predDynamic.length; j++){
    simulationOutput.setNum(j,1, int(predDynamic[j]));
    j++;
  }
  
  save(simulationOutput, month()+"/"+day()+"_T:"+hour()+":"+minute()+":"+second()+"_Simulation_Output.csv");
}

我希望将模拟的输出保存到一个.csv文件中,但似乎不能使用for循环迭代表的行.我使用的是p5.js

for(let j = 1; j<predDynamic.length; j++){
    simulationOutput.setNum(j,1, int(predDynamic[j]));
    j++;}

我得到以下错误:

Uncaught TypeError: Cannot read properties of undefined (reading 'setNum')
    at o.default.Table.setNum (p5.min.js:3:593463)
    at o.default.Element.saveAsCSV (predator_prey.js:255:22)
    at o.default.Element.<anonymous> (p5.min.js:3:429692)

问题是使用j进行迭代,但我看不出这是如何返回未定义的?

推荐答案

您收到此错误是因为totalDynamic.length<;predDynamic.length

totalDynamic而不是predDynamic中的每一项添加一行.但是当predDynamic中有more个条目而不是totalDynamic个时,p5.Table()不能识别这些行,因为它们还没有被初始化.可能的解决方案:

for(let j = 1; j<predDynamic.length; j++){
   if(simulationOutput.rows.length <= j) simulationOutput.addRow();
   simulationOutput.setNum(j,1, int(predDynamic[j]));
   j++;
}

Javascript相关问答推荐

使用JavaScript单击上一个或下一个特定按钮创建卡滑动器以滑动单个卡

为什么从liveWire info js代码传递数组我出现错误?

单击更新页面的按钮后,页面刷新;测试/断言超时,有两个标题,但没有一个标题

提交表格后保留Web表格中的收件箱值?

将2D数组转换为图形

使用Promise.All并发解决时,每个promise 的线性时间增加?

制作钢琴模拟器,并且在控制台中不会执行或显示该脚本

在forEach循环中获取目标而不是父对象的属性

Eval vs函数()返回语义

从页面到应用程序(NextJS):REST.STATUS不是一个函数

覆盖加载器页面避免对页面上的元素进行操作

获取';无法解决导入和导入";slick-carousel/slick/slick-theme.css";';错误

面对代码中的错误作为前端与后端的集成

为什么在函数中添加粒子的速率大于删除粒子的速率?

使用可配置项目创建网格

通过解构/功能组件接收props-prop验证中缺少错误"

将以前缓存的 Select 器与querySelector()一起使用

无法向甜甜圈图表上的ChartJSImage添加可见标签

JSON Web令牌(JWT)错误:RSA密钥对的签名无效

Select 所有输入.值