2015-10-05 56 views
0

我正在練習javascript,並且我正在創建一個單例鏈接列表,但我正在獲取最後一個節點[對象]而不是將新節點添加到列表中。爲什麼[object]出現在javascript中的嵌套列表實現中?

這是我現在的代碼,我希望你能幫助我,也許我的錯誤是在addNode方法。

function Node(value) { 
    this.value = value; 
    this.nextNode = null; 
} 

Node.prototype.addNode = function(newNode) { 
    function append(node) { 
    if (node.nextNode == null) { 
     node.nextNode = newNode; 
    } 
    else { 
     return append(node.nextNode); 
    } 
    } 
    return append(this); 
} 

var firstNode = new Node(5); 
var node2 = new Node(3); 
var node3 = new Node(4); 
var node4 = new Node(8); 
var node5 = new Node(1); 

console.log(firstNode); 
firstNode.addNode(node2); 
console.log(firstNode); 
firstNode.addNode(node3); 
console.log(firstNode); 
firstNode.addNode(node4); 
console.log(firstNode); 
firstNode.addNode(node5); 
console.log(firstNode); 

這是印有Node.js的

節點{值:5,nextNode:空} {節點值:5,nextNode:節點{ 值:3,nextNode:空}}節點{值:5,nextNode:節點{value:3,nextNode:node {value:4,nextNode:null}}}節點{value:5,nextNode:value {value:5,nextNode:Node {value :4, nextNode:[Object]}}} Node {value:5,nextNode:Node {value: 3,nextNode:Node {value:4,nextNode:[Object]}}}

+0

console.log正在爲您縮短它。如果你更深入地瀏覽節點,它會顯示更深的嵌套。 'console.log(firstNode.nextNode)' –

+1

如果你想要它吐出所有東西,你可以'console.log(JSON.stringify(firstNode,null,2));' –

+0

謝謝你的回答! @DanCrews JSON.stringify就像一個魅力!我在考慮添加時出現問題,但是我檢查了兩次,所以我問了這個問題!非常感謝,讓noobs編碼人員的生活更輕鬆。 – jdecuirm

回答

0

使用util.inspect()來調查完整鏈接列表。

var util = require('util'); 

console.log(util.inspect(myObject, {showHidden: false, depth: null})); 

# alternative shortcut 
console.log(util.inspect(myObject, false, null)); 
+0

嗨!感謝您的回答,以及作品的預測!差異我猜是JSON.stringify打印結果的字符串版本的對象,而這種方法保持當前的格式。非常感謝您的回答! – jdecuirm

相關問題