2012-02-17 6 views
5

Nodeにリスト(配列)としてコードを格納して実行するアイディアがありましたが、これは思ったよりも難しいです。先頭や末尾に、.popまたは.shift削除されますが、それを省略し、次の要素を返します。NodeのArray.popがスキップして関数の項目を忘れた場合

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

Iは、ノードv0.4.9でこれを気づいたが、それはまだ0.6.10に存在しています。

回避策はありますか?

更新:私はissue on GitHubを提出しました。

更新2:バグは自分のシェルにのみ存在します。これらのコマンドをスタンドアロンスクリプトから実行すると、正しく動作します。これは単なるシェルの問題です。

答えて

4

私は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/

あなたがノードのどのバージョンを使用していますか?

+0

私はノードv0.4.9を持っています –

+0

同じ結果0.6.10 –

+0

私は書いたコードスニペットをカットアンドペーストしましたが、私のようには機能しませんでしたか?なぜ私たちが違うものを見ているのか分かりません。 –

関連する問題