Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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 如何调试不存在';我不提供任何错误_Javascript_Node.js_Debugging - Fatal编程技术网

Javascript 如何调试不存在';我不提供任何错误

Javascript 如何调试不存在';我不提供任何错误,javascript,node.js,debugging,Javascript,Node.js,Debugging,使用Express4作为我的服务器引擎。当我运行以下函数时,窗口将变得无响应。控制台中没有错误 function updateLoadedData(type, schedule, date) { var dateYear = date.year() var dateMonth = date.month() var dateDate = date.date() if (dateData[dateYear] == undefined) dateData[dateYear]

使用Express4作为我的服务器引擎。当我运行以下函数时,窗口将变得无响应。控制台中没有错误

function updateLoadedData(type, schedule, date) {
  var dateYear = date.year()
  var dateMonth = date.month()
  var dateDate = date.date()

  if (dateData[dateYear] == undefined)
    dateData[dateYear] = new Array()
  if (dateData[dateYear][dateMonth] == undefined)
    dateData[dateYear][dateMonth] = new Array()
  if (dateData[dateYear][dateMonth][dateDate] == undefined)
    dateData[dateYear][dateMonth][dateDate] = new Array()

  var output = ["hello", "stackoverflow"]

  dateData[dateYear][dateMonth][dateDate] = output
}

我不知道是什么导致了这个错误。谢谢你的帮助。提前感谢。

在我看来,这似乎与你的上一句话有关:

dateData[dateYear][dateMonth][datedatedatedate]=输出

您正在将二维阵列扩展到三维阵列

我调试它的方法是注释掉那一行,看看窗口是否保持响应。这将告诉你这条线是否是罪魁祸首。如果是,则可以添加console.log以查看
datedatedate
值。也许这是假的

此外,您可能还想研究多维数组。这是一个很好的开始


正如其他人指出的,考虑一种不同的方式来表示你的数据。多维数组(尤其是2以上的数组)通常以不同的形式表示。

问题一定在其他地方。考虑代码的这种实现。没有错误

你确实有很多值得称赞的{}和;因此,如果您处于严格模式,这可能也是一个问题

var-dateData={};
var update=函数updateLoadedData(类型、计划、日期){
var dateYear=date.year()
var dateMonth=date.month()
var dateDate=date.date()
if(日期数据[日期年]==未定义)
dateData[dateYear]=新数组()
如果(dateData[dateYear][dateMonth]==未定义)
dateData[dateYear][dateMonth]=新数组()
如果(dateData[dateYear][dateMonth][DateDateDate]==未定义)
dateData[dateYear][dateMonth][DateDateDate]=新数组()
var输出=[“你好”,“堆栈溢出”]
dateData[dateYear][dateMonth][DateDateDate]=输出
};
更新(null,null{
'year':函数(){return 2017;},
“月”:函数(){return 3;},
“日期”:函数(){return 2;},
});

警报(JSON.stringify(dateData))不确定,但是您不需要从这个函数返回一些东西吗?在语句和使用浏览器控制台(Chrome中的F12)进行调试之间,在脚本中应用断点,您应该能够确定发生了什么。我已经简化了导致错误的代码。这是3D数组要做的事情。那么,当你在3D数组上执行console.log()操作时,
dateDate
是什么呢?这就是错误所在,但它仍然会产生一个修复错误。我已经更新了我的代码。我的修正可能是错误的。更新了我的答案。谢谢。我能够采用这个功能,让ti开始工作。