簡體   English   中英

純JavaScript-數組值未定義

[英]Pure JavaScript - Array value gets undefined

我是JS新手,請多多關照! 我正在嘗試實現一些代碼,但是遇到了問題。

 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 = ul + 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,但該值將消失。 我已經研究了一個小時,請您能幫忙嗎? 為什么會出現未定義的錯誤?

我發現如果我正在使用

G[i].push({ 
    l: Infinity, 
    previous: undefined 
  })

G[i].l不能訪問“ l”或“ previous”,因此它是未定義的。 相反,我可以通過G[i][j]["l"]來訪問它,因為

{ 
  l: Infinity, 
  previous: undefined 
}

是一個元素,我必須訪問它的元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM