web-dev-qa-db-ja.com

node.jsまたはJavaScriptで配列をマップするクリーンな方法

関数と配列があるとしましょう。配列の各エントリに関数を適用して、配列を変更したいと思います。この関数は値を直接変更しません。新しい値を返します。

擬似コードでは、

for (entry in array) {
    entry = function(entry);
}

私に起こったこれを行うにはいくつかの方法があります:

for (var i = 0; i < arr.length; i++) {
    arr[i] = fn(i);
}

または、node.jsを使用していて、アンダースコアが組み込まれているため、次のようになります。

arr = _.map(arr, fn);

しかし、これはどちらも少し不格好なようです。標準の「for」ブロックは過度に冗長に感じられ、_。map関数は配列全体を再割り当てするため、非効率的だと感じます。

これをどのように行いますか?

はい、私はこれを考えすぎていることを知っています:)

14
Eric

Array#map() メソッド。

_var arr = arr.map(fn);
_

_.map()はおそらく同じ方法で実装されます。

25
fent