我有一个想法,可以将代码存储为Node中的列表(数组)并执行它们,但这比我想象的要难:如果我在列表的开头或结尾都添加了函数,则.pop.shift会删除但忽略它,并且返回下一个元素:

> l = [1, 75, 84, function() { console.log('aseuht') }]
[ 1, 75, 84, [Function] ]
> l.pop()
84
> l
[ 1, 75 ]

我在Node v0.4.9中注意到了这一点,但在0.6.10中仍然存在。

有没有解决方法?

更新:我提交了issue on GitHub

更新2:该错误仅存在于我的shell中,当我从独立脚本运行这些命令时,它可以正常工作。因此,这只是一个 shell 问题。

最佳答案

我只是在Node,Firefox和Chrome浏览器中进行了尝试,并且在这三者中都按预期工作。

这是我使用的代码:

var l= [1, 75, 84, function() { console.log('aseuht'); }];
console.log(l);
console.log(l.pop());
console.log(l);

结果:
[ 1, 75, 84, [Function] ]
[Function]
[ 1, 75, 84 ]

和JSFiddle:http://jsfiddle.net/Q5M8M/

您正在使用哪个版本的Node?

07-28 02:48
查看更多