JavaScriptの配列循環方法

5454 ワード

var arr=[1,2,3,4,5]
1、遍歴、forEachサイクル
2、マップ、mapサイクル
//        map
if(Array.prototype.map===undefined){
  Array.prototype.map=function(fun){
    var newArr=[];
    //           
    for(var i=0;i<this.length;i++){
        //        undefined
        if(this[i]!==undefined){//      
        //  fun       ,  i,    ,      r 
        // newArr i     r
        var r=fun(this[i],i,this);
        newArr[i]=r;
      }
    }
    return newArr;
  }
}
3、フィルタ、filter()関数は新しい配列を作成するために用いられ、行列の中で条件に合う項目を絞り出して、新しい配列を構成します.
var newArr=arr.filter(function(item, index){
return item >3
})  //[4,5]
4、累計して、reduce()関数は、配列を縮小(reduce)することを一つの値(例えば、求和、積)とし、配列中の前項と後件に何らかの計算をさせ、そして最終値を累計する.
var result=arr.reduce(function(prev, next){
  return prev + next;
})  //15
//        reduce
if(Array.prototype.reduce===undefined){
    Array.prototype.reduce=function(fun,base){
        base===undefined && (base=0);
        for(var i=0; i<this.length; i++){
            if(this[i]!==undefined){
                base=fun(base,this[i],i,this);
            }
        }
        return base;
    }
}
5、everyサイクル
6、some()関数検出配列にはいくつかの項目が条件に合っていますか?
var result=arr.some(function(item, index){
return item>1
})  //      ,  true
//        some
if(Array.prototype.some === undefined){
    Array.prototype.some = function(fun){
        for(var i=0; i<this.length; i++){
            if(this[i]!==unefined){
                var r = fun(this[i],i,this);
                if(r==true){ return true; }
            }
        }
        return false;
    }    
}