2017-10-12 9 views
0

配列の要素の長さを合計したい場合、単純なarr.join( ' ).lengthは、配列全体のマッピングよりも速くなり、その後、合計が減少します。参加するよりもマッピングと還元の方が速いのではないでしょうか?文字列の配列への参加ここjsperfリンク https://jsperf.com/join-vs-map-reduce配列内のアイテムの長さの合計を返す関数は、最初に配列をマッピングした後に速く実行されます。

+0

あなたは 'arr.reduce((r、el)=> r + el.length、0)'を試しましたか?そして、ちょっと、約5%を話していて、それはブラウザに依存しているので、どうして気にしますか? –

+0

私はちょうど理解したかった。私はちょうど削減知っている - 上記のコードスニペットは速いです。 –

+0

何も分かりません。これはいくつかのjsエンジンが深くネストされたコードに起因しており、誰もこれに対して正確な答えを与えることはできません。 –

答えて

0

を投稿

は最後にその長さをカウントするために、新しい文字列、おそらく複数の中間文字列を構築伴います。

マッピングとリダクションには、カウントと算術演算が含まれます。これはおそらく、文字列の結合に伴うメモリの割り当てやコピーよりも高速です。

関連する問題