javascript - 无法读取nodejs中未定义的属性“长度”
问题描述
我在节点 js 中执行以下代码。
我在顶部声明了一个名为 graph 的二维数组。如果我graph[0].length
在main()
函数和traverseGraph
函数中访问属性,它成功地将值显示为 2。但是,如果我将 0 作为值传递给st
函数的参数traverseGraph
然后尝试访问graph[st].length
,我得到:
无法读取未定义错误的属性“长度”。
var graph = [[1,2], [2,3]];
main();
function traverseGraph(st)
{
console.log(graph[0].length);//successfully works
while(graph[st].length)//fails
{
for(var array_el=0; array_el<graph[st].length; array_el++)
{
if(graph[st][array_el]){
var next = graph[st][array_el];
return traverseGraph(next);
}
}
}
return next;
}
function main(){
console.log(graph[0].length); //successfully works
traverseGraph(0);
}
解决方案
while(graph[st] != null && graph[st].length)
{
for(var array_el=0; array_el<graph[st].length; array_el++)
{
if(graph[st][array_el]){
var next = graph[st][array_el];
return traverseGraph(next);
}
}
}
固定的
while(!graph[st] && graph[st].length)
{
for(var array_el=0; array_el<graph[st].length; array_el++)
{
if(graph[st][array_el]){
var next = graph[st][array_el];
return traverseGraph(next);
}
}
}
图[2] 或图[3] 不存在
检查空
推荐阅读
- regex - bash sed 从文件末尾删除所有空格和空行
- google-cloud-platform - 将 Google Cloud Run 与 Google Compute Engine 或 GKE 连接
- ios - Swift:如何在更改标签之前完成 UIView 绘制动画
- vba - 有没有办法让 FileDialog 使用 .InitialFileName 属性打开远程计算机文件夹
- angular - Angular HttpClient 请求和 Spring Boots RestTemplate 请求之间的区别
- wordpress - 如何编辑 buddypress 页面模板
- r - 使用 dplyr 包的代码中再次出现错误
- kubernetes - 不匹配,通配符仅涵盖单个 DNS 标签
- c# - 在同时请求控制器方法的情况下重复 ID 问题
- algorithm - 确定多边形顶点之间的线段是否为“内部”多边形