0
我是JS的新手,請大發慈悲!我試圖實現一些代碼,但我遇到了一個問題。Pure JavaScript - Array value undefined
var edges = [{src: 3, dst: 61}, {src: 46, dst: 40}, {src: 63, dst: 65}, {src: 1, dst: 50}];
var G = [];
var min = 0;
var mini = 0;
var v;
var m = 99;
var n = edges.length;
for (i = 0; i < m; i++) {
G[i] = [];
}
n = edges.length;
for (i = 0; i < m; i++) {
G[i].push({
l: Infinity,
previous: undefined
})
for (j = 0; j < n; j++) {
if (edges[j].src == i) {
G[i].push(edges[j].dst);
G[i].sort();
}
}
G[i].unshift(i);
}
var Q = G;
var u = [];
u = Q[0];
var alt;
Q[0].l = 0;
while ((Q.length) != 0) {
for (k = 0; k < m ; k++) {
if (Q[k].l < min) {
mini = Q[k][0];
u = Q[mini];
}
}
Q.splice(mini, 1);
m--;
for (i = 1; i < (u.length) ; i++) {
alt = u.l + 1;
v = u[i];
for(j = 0; j < m; j++) {
if(Q[j][0] == v) {
console.log(v);
console.log(Q[j].l);
v = j;
console.log(v);
}
}
if ( alt < Q[v].l){
Q[v].l = alt;
Q[v].previous = u;
}
}
mini = 0;
}
在這裏,我得到52行錯誤,並指出「不能讀取屬性的線55未定義的‘L’」。值'l'默認情況下應該是99999999999999999999,然而,這消失了。我已經參加了一個小時,能否請你幫忙?爲什麼我會得到未定義的錯誤?
請在問題中包含正確的代碼,爲什麼我們必須點擊鏈接? – nicael
'99999999999999999999'很可能過大,並且被瀏覽器處理爲'NaN'。 – AMACB
你應該使用更多的描述性變量名稱。該代碼的流程非常難以遵循。 – Jivings