Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么[object]出现在javascript中的嵌套列表实现中?_Javascript_Node.js_Recursion_Linked List - Fatal编程技术网

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

为什么[object]出现在javascript中的嵌套列表实现中?,javascript,node.js,recursion,linked-list,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) {

我正在练习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打印的

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


使用util.inspect调查完整的链接列表

var util = require('util');

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

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

console.log只是为您缩短了它。如果您导航到节点更深一点,它将显示嵌套更深一点。console.logfirstNode.nextnode如果你想让它说出整个事情,你可以console.logJSON.stringifyfirstNode,null,2;谢谢你的回答@DanCrews JSON.stringify工作得非常出色!我以为添加时有问题,但我加倍检查,所以,这就是为什么我问!非常感谢,让noobs程序员的生活更轻松。嗨!,谢谢你的回答,工作也很好!我猜不同之处在于JSON.stringify将结果打印在对象的字符串版本中,而此方法保持当前格式。非常感谢你的回答!