| 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]