2012-07-25 5 views

答えて

14

が見える、その後ko.utils.arrayFirstまたはko.utils.arrayFilterは、より良いあなたのニーズにフィットするように思えます。ここでarrayForEachのソースは、あなたが壊れたり継続する必要がある場合は、あなただけ上記のソースコードのように、forループ独自のロールすることができます(utils.jsからKOのGitHubページ)

arrayForEach: function (array, action) { 
    for (var i = 0, j = array.length; i < j; i++) 
     action(array[i]); 
}, 

です。

+0

'j'を初期化する点は何ですか? 'i

+2

@ TheMuffinMan jのポイントは、各ループの反復中に配列を参照解除しないようにすることによって、おそらく数ミリ秒を節約することです。 [このStackOverflowの質問](http://stackoverflow.com/questions/17989270/javascript-for-loop-performance-storing-array-length-in-a-variable)を参照してください。その質問への受け入れられた答えで参照されているjsperfから、現代​​のブラウザではそれほど大きな違いはありません。 – bmode

9

あなたができないようなあなたの現在のアプローチ

+0

要件はパフォーマンスに関するものです。私はループ内で複数のものを作りたい。 – ozz

+0

単純なループを使用すると、数ミリ秒節約できます。この場合は、単にコードを実行し、arrayForEachに渡すサブ関数を呼び出さないからです。 – Madman

関連する問題