loops - JavaScript forEach return - JavaScriptの配列に対するFor-each

javascript for文 配列に格納 / javascript / arrays / foreach / iteration

JavaScriptで配列のすべてのエントリをループするにはどうしたらいいですか?

こんな感じだと思いました。

forEach(instance in theArray)

Peter Mortensen



Answer #1

angularのforEachループには様々な使い方があります。最もシンプルで、おそらく最もよく使われるのは

var temp = [1, 2, 3];
angular.forEach(temp, function(item) {
    //アイテムは配列の各要素になります
    //何かをする
});

また、ある配列から別の配列にアイテムをコピーするのに便利な方法は

var temp = [1, 2, 3];
var temp2 = [];
angular.forEach(temp, function(item) {
    this.push(item); // "this"は、オプションの3番目のパラメーター、つまりこの場合はtemp2に渡される配列を指します。
}, temp2);

しかし、そのようなことをする必要はなく、次のようにすれば、前の例と同じになります。

angular.forEach(temp, function(item) {
    temp2.push(item);
});

以下の2つのネストされたループを考えてみましょう。これらは全く同じことをしています。オブジェクトの配列が2つあり、それぞれのオブジェクトには結果の配列が含まれていて、それぞれの結果のValueプロパティには文字列(または何でも)が入っているとします。そして、それぞれの結果を繰り返し処理して、もしそれらが同じならば、何らかのアクションを実行する必要があるとします。

angular.forEach(obj1.results, function(result1) {
    angular.forEach(obj2.results, function(result2) {
        if (result1.Value === result2.Value) {
            //何かをする
        }
    });
});

// forループとまったく同じ
for (var i = 0; i < obj1.results.length; i++) {
    for (var j = 0; j < obj2.results.length; j++) {
        if (obj1.results[i].Value === obj2.results[j].Value) {
            //何かをする
        }
    }
}