为什么[object]出现在javascript中的嵌套列表实现中?

时间:2015-10-05 22:16:20

标签: javascript node.js recursion linked-list

我正在练习javascript,我正在创建一个单独的链接列表,例如,但我正在最后一个节点[object],而不是在列表中添加一个新节点。

这是我的代码,我希望你可以帮助我,也许我的错误在于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打印的

  

Node {value:5,nextNode:null} Node {value:5,nextNode:Node {   value:3,nextNode:null}} Node {value:5,nextNode:Node {   value:3,nextNode:Node {value:4,nextNode:null}}}节点{
  value:5,nextNode:Node {value:3,nextNode:Node {value:4,   nextNode:[Object]}}} Node {value:5,nextNode:Node {value:   3,nextNode:Node {value:4,nextNode:[Object]}}}

1 个答案:

答案 0 :(得分: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));