关于数组遍历五种方法学习(修改1)

1、forEach(callback,thisObj)参数的认识:

var array=[1,2,3,4,5,6];
var obj={name:"zhang",age:18};
array.forEach(function(ivalue,index,arr){
    console.log("arr["+index+"]="+arr[index]+"-------"+"ivalue="+ivalue+"-------"+"arr=["+arr+"]"+this.name);
},obj);

forEach有俩个参数:第一个参数-- callback函数  有俩个3参数(当前遍历值:ivalue,当前索引值:index,当前数组对象);第二个参数--是可选参数。用来当作callback 函数内this的值的对象;

上面解释信息 可能有点乱 纯是为本人理解做的例子 

 

2、every(callback,thisObj)参数认识:

var array1=[2,6,6,4,10,6]
var obj1={name:"zhang",age:18};
var con=array1.every(function(value,index,arr){
    if(value%2==0){
        return true;
    }
},obj1);
console.log(con);

every(callback,thisObj)方法是检查数组所有元素是否通过指定函数的测试(callback),callback参数与forEach相同,every 方法为数组中的每个元素执行一次 callback 函数,直到它找到一个使 callback 返回 falsy(表示可转换为布尔值 false 的值)的元素。如果发现了一个这样的元素,every 方法将会立即返回 false。否则,callback 为每一个元素返回 trueevery 就会返回 truecallback 只会为那些已经被赋值的索引调用。不会为那些被删除或从来没被赋值的索引调用。本段解释出处;

3、some(callback,thisObj)参数认识:

var array=[1,2,3,4,5];
var obj={name:"zhang",age:18};
var show=array.some(function(value,index,arr){
    if(value%2!=0){
        console.log(value);
        return false;
    }
},obj);

console.log(show);

some中callback函数参数与every,forEach相同,callback函数用来遍历数组的每一个元素,回调的返回值有意义,返回true时,数组停止循环。此处与every相反,

输出结果:

 由此可知 some返回值 不仅仅可以返回Boolean值;

4、map(callback,thisObj)参数认识:

var array=[1,2,3,4,5];
var obj={name:"zhnag",age:18};

var nArray=array.map(function(value,index,arr){
    var sum=new Array();
    sum.push(value*value);
    return sum;
},obj);

var nArray1=array.map(function(value,index,arr){
    return value*value;
},obj);
console.log(nArray);
console.log(nArray1);
console.log(array);

输出结果如下:

对map的理解:map 方法会给原数组中的每个元素都按顺序调用一次 callback 函数callback 每次执行后的返回值组合起来形成一个新数组。 callback 函数只会在有值的索引上被调用;那些从来没被赋过值或者使用 delete删除的索引则不会被调用。从上面红色部分 可以知道 上面第1行输出结果和2、3行输出结果不同的原因;

5、filter(callback,thisObj)参数认识:

//filter
var array=[1,2,3,4,5,6];
var obj={name:"zhang",age:18};
var nArray=array.filter(function(value,index,arr){
    if(value%2==0){
        //return arr[index];  //添加这句话是多余的
        return true;  //复合条件的项 同样会被返回
    }
},obj);

console.log(nArray);

输出结果:

对于filter方法了解:此函数用来遍历数组的每一个元素,不会改变原数组,fn回调必须返回Boolean类型,表示当前元素是否满足条件可以被返回。由红字部分 可以看代码中 return arr[index]是多余的;但是必须要有返回值;

 

posted on 2016-01-11 10:30  源人  阅读(135)  评论(0)    收藏  举报

导航