4 回答

TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
您使用了錯(cuò)誤的 for 循環(huán)。嘗試將其更改為:
printGraph(){
for (let node of this.nodes){
console.log(node.nodeId);
}
}
for..of 循環(huán)應(yīng)該按照您想要的方式循環(huán)遍歷節(jié)點(diǎn)。
結(jié)果:
1
2
3

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
我認(rèn)為問(wèn)題可能是您使用“for in”循環(huán)而不是“for of”來(lái)迭代數(shù)組。
“for in”循環(huán)用于迭代對(duì)象屬性

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊
看來(lái)您正在使用關(guān)鍵字迭代數(shù)組對(duì)象的屬性in。對(duì)于數(shù)組,這意味著您要迭代索引(鍵),即 3 成員數(shù)組中的 0、1、2。這些是字符串,沒(méi)有屬性nodeId,所以你的輸出是undefined. console.log(node, typeof node)如果您在當(dāng)前循環(huán)內(nèi)運(yùn)行(與 保持一致),您將看到這些in。
如果在 for 循環(huán)中使用of關(guān)鍵字,您將獲得數(shù)組的值,即值為 1、2 和 3 的對(duì)象nodeId。因此,您所要做的就是更改in為of,您將獲得所需的輸出。
就我個(gè)人而言,我會(huì)用這個(gè):
printGraph(){
const nodeIds = this.nodes.map(node => node.nodeId);
console.log(nodeIds);
}

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
你需要打印,console.log(node);
因?yàn)槟阏谘h(huán)槽let node in this.nodes
node
實(shí)際節(jié)點(diǎn)來(lái)自哪里this.nodes
添加回答
舉報(bào)