javascript学習記録-配列(6)2014/02/23

1012 ワード

配列の方法のECMAScript 5部分
全部で9つです.前のECMAScript 3の方法とめちゃくちゃです.5の方法はデフォルトでは元の配列を変更しません.
  • forEach(処理の関数(配列の要素[、要素のインデックス、配列自体]){/処理…)
  • 1つのパラメータを渡す
    var data = [1, 2, 3, 4, 5];
    var sum = 0;
    data.forEach(function(value) {
        sum += value;    //         
    });
    data    // [1, 2, 3, 4, 5]
    sum    // 15
    
    3つのパラメータを渡す
    data.forEach(function(v, i, a) {
        a[i] = v +1;    //        “  +1”
    });
    data    // [2, 3, 4, 5, 6]
    
    forEachが実行を開始すると、breakのような通常の方法で事前に実行を中止することはできません.
    唯一の方法はforEach方法を一つのtry...catchに置いて、foreach.break異常を投げることによって中止することです.
    function foreach(a, f, t){
        try {
            a.forEach(f,t);
        }catch (e) {
            if (e === foreach.break) {
                return;
            } else {
                throw e;
            }
        }
    }
    
    foreach.break = new Error("StopIteration");
    
    var a = [1, 2, 3, 4, 5, 6];
    
    function b(v, i, a) {
        if(v>3) 
            foreach.break;
        else 
            a[i] = 0;
    }
    
    foreach(a,b);
    
    a    // [0, 0, 0, 4, 5, 6]