【发布时间】:2015-04-24 10:21:05
【问题描述】:
我有这个 Javascript 对象数据,我正试图将它添加到堆栈中。但是,我遇到了一些非常奇怪的错误。比如,
var data = {
"name" : "unknown",
"id": 1,
"children": [
{
"name": "test",
"id": 2,
"children": [
{
"name": "test",
"id": 4,
}
]
},
{
"name": "test",
"id": 3
}
]
};
var stack = [data];
console.log(stack); // output: undefined
while (stack.length > 0) {
console.log(stack); // output: undefined
var pop = stack.pop()
console.log(stack); // output: undefined
}
我唯一能想到的是,当涉及到 while 循环时,指向堆栈对象的指针存在某种问题。
有趣的是,当我从混合中取出 while 循环或向堆栈添加索引时,会返回正常值。例如,
var stack = [data];
console.log(stack); // [Object ... ] with the correct data
或
var stack = [data];
console.log(stack[0]); // [Object ... ] with the correct data
while (stack.length > 0) {
console.log(stack[0]); // [Object ... ] with the correct data
var pop = stack.pop()
console.log(stack); // [] as it should be...
}
有什么想法吗?
【问题讨论】:
-
console = {}; console.log = function() {};尝试在控制台中写入delete console。 -
使用我的 jsFiddle 日志功能一切正常。 jsfiddle.net/ifch0o1/422jfv93/1 好像是控制台问题。
标签: javascript arrays stack undefined