gpt4 book ai didi

javascript - 未定义的数组元素

转载 作者:行者123 更新时间:2023-11-30 13:11:20 25 4
gpt4 key购买 nike

我在第 26 行收到“Uncaught TypeError: Cannot read property 'length' of undefined”。我看不出发生这种情况的原因,因为控制台将第 24 行记录为索引为 1 的数组,但第 25 行记录为未定义。

"use strict"
function findpath(G,si,di){
//G is an array of nodes (with id, lat, lon)
var P=[si];
var C=[0,P];
var M=[C];
var O=[];
var ctr=0;
var done = false;
var reached = false;
var best = undefined;


while(!done){
ctr++;
if( ctr > 100 ){
alert("Sorry, can't find the destination.");
return P;
}

for (var i=0;i<M.length;++i){
console.log(P);
console.log(C);
console.log(M[i]);
console.log(M[i[0]]);
var last = M[i[1]].length;
var v = M[i[1[last]]];

//select a random neighbor...
if( v.N.length === 0 ){
alert("Wat?");
return [];
}
else if( v.N.length === 1 ){
break;
}
else if( v === di ){
break;
}
else {
for (var j=0;j<v.N.length;++j){
var temp = M[i];
O.push(temp[1].push(v.N[j]));
var dist = distance(v.lat,v.lon,v.N[j].lat,v.N[j].lon);
var temp2 = O.length-1;
O[temp2[0]]+=dist;
if (v.N[j]===di){
reached = true;
if (best === undefined){
console.log("ASSIGN");
best = O[temp2];
}
else {
if (O[temp2[0]]<best[0]) {
best = O[temp2];
}
}
}
}
}
}
M = O;
var any = false;
for (var i=0;i<M.length;++i) {
if (M[i[0]]<best[0]) {
any = true;
}
}
if (!any) {
done = true;
}
}

//return the path
return best[1];
}

function distance(x1,y1,x2,y2){
return Math.sqrt(Math.pow((x2-x1),2)+Math.pow((y2-y1),2));
}

输出:

Array[1]     findpath.js:22
Array[2] findpath.js:23
Array[2]
0: 0
1: Array[1]
0: 13
length: 1
__proto__: Array[0]
length: 2
__proto__: Array[0] findpath.js:24
undefined findpath.js:25
Uncaught TypeError: Cannot read property 'length' of undefined findpath.js:26

最佳答案

编辑 - 根据您的评论,看起来您有一个数组数组,如果我理解正确的话,M[i[1]] 应该是 M[i][1]


你正在检查

console.log(M[i[0]]);

然后访问

 var last = M[i[1]].length;

似乎 M[i[0]] 包含一个有效数组,但 M[i[1]] 没有。

我建议您仔细查看您的 Mi 数组,以了解为什么 M[i[1]] 是未定义。


编辑,正如下面的评论所说,i 似乎是循环控制变量。您是想简单地键入 M[i] 吗?

关于javascript - 未定义的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13774937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com