为什么 [object] 出现在 javascript 的嵌套列表实现中?
Why does [object] appear in a nested list implementation in javascript?
我正在练习 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 } } } Node {
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] } } }
使用util.inspect() 调查完整链表。
var util = require('util');
console.log(util.inspect(myObject, {showHidden: false, depth: null}));
# alternative shortcut
console.log(util.inspect(myObject, false, null));
我正在练习 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 } } } Node {
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] } } }
使用util.inspect() 调查完整链表。
var util = require('util');
console.log(util.inspect(myObject, {showHidden: false, depth: null}));
# alternative shortcut
console.log(util.inspect(myObject, false, null));