forEach | map | filter | |
戻値 | なし | あり | あり |
新しい配列 | undefined | 元の配列数 | 実行テストに通った要素の数 |
注意 | returnなし | returnを返さない場合、新しい配列にはundefinedが入る | 実行結果がtrueの要素を新しい配列に挿入する。 |
var data=[0,1,2]; data.forEach(function(val,index,ary){ console.log(ary[index]); });
var data=[0,1,2]; var data2 = data.map(function(val,index,ary){ console.log("val=[" + val + "]"); console.log("index=[" + index + "]"); return val*index; }); // index=[0] // val=[1] // index=[1] // val=[2] // index=[2] data2.forEach(function(val,index,ary){ console.log("ary[index]=[" + ary[index] + "]"); console.log("val=[" + val + "]"); }); // ary[index]=[0] // val=[0] // ary[index]=[1] // val=[1] // ary[index]=[4] // val=[4]
fillterは関数オブジェクトがtrueを返すものだけ返す
var data=[0,1,2,3,4,5,6]; var data2 = data.filter(function(val,index,ary){ console.log("val=[" + val + "]"); console.log("index=[" + index + "]"); return val%2; }); val=[0] index=[0] val=[1] index=[1] val=[2] index=[2] val=[3] index=[3] val=[4] index=[4] val=[5] index=[5] val=[6] index=[6] data2.forEach(function(val,index,ary){ console.log("ary[index]=[" + ary[index] + "]"); console.log("val=[" + val + "]"); }); ary[index]=[1] val=[1] ary[index]=[3] val=[3] ary[index]=[5] val=[5]