サイドバー

javascript:関数オブジェクト比較_foreach_map_filter

関数オブジェクト比較(forEach・Map・Filter)

forEach map filter
戻値 なし あり あり
新しい配列 undefined 元の配列数 実行テストに通った要素の数
注意 returnなし returnを返さない場合、新しい配列にはundefinedが入る 実行結果がtrueの要素を新しい配列に挿入する。

forEach

    var data=[0,1,2];
    data.forEach(function(val,index,ary){
        console.log(ary[index]);
    });

map

    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]

filter

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]
javascript/関数オブジェクト比較_foreach_map_filter.txt · 最終更新: 2019/02/08 07:19 by ips