javascrip中array使用(续)

ECMAScript 5中的数组的方法

Ecmascript5定义了9个新的数组方法遍历,映射,过滤,检测,简化和搜索数组。

  1.forEach()

       Array.orEach()方法从头到尾遍历数组,第一个参数为此元素值,第二个参数为索引值,第三个参数为此数组this引用。

var data=[1,2,3,4,5];
var sum=0;
data.forEach(funciton (item){
  sum+=item;
});
sum;                         //=>15;
data.forEach(funciton(v,i,a){
 a[i]=v+a;
})
data;                       //=>[2,3,4,5,6];

  2.map()

       Array.map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含该函数的返回值,此方法返回的为一个数组。

var arr=[1,2,3,4];
var temp=arr.map(funciton (value){
return value*value;
});
temp;                           //temp:[1,4,9,16]

  3.filter()

        Array.filter()方法返回的数组元素是调用数组的一个子集。传递的函数是用来逻辑判定的:该函数返回true和false。

var arr=[1,2,3,4,5];
var smallValues=arr.filter(funciton (value){
   reutrn value<3;
});           
smallValues;                         //smallValues:[1,2];
var everyOther=arr.filter(function (value){
 return  value%2==0;
});
everyOther;                          //everyOther:[1,3,5];

  4.every()和some()

        Array.every和Array.some()方法是数组的逻辑判定:他们对元素应用指定的函数进行判定,返回true和false。every()方法针对所有的数组元素进行判定,some()则为存在此条件的数组元素进行判定

var arr=[1,2,3,4,5];
arr.every(funciton (value){
  return value<10;
});            //返回true:因为数组元素都小于10为真;
arr.some(funciton (value){
  return value%2==0;
});            //返回true:因为数组元素中存在偶数
arr.some(isNan);      //返回false:因为数组元素中不存在非空元素;

  5.reduce()和reduceRight()

       Array.reduce()和Array.reduce.Right()方法使用指定的函数将数组元素进行组合,生成单个值。reduce()方法第一个参数为执行化简操作的函数,第二个参数为初始值。reduceRight()方法像似,区别是便利时reduceRight索引是从高至低,reduce索引是从低到高。

      

var arr=[1,2,3,4,5];
var sum=arr.reduce(funciton (x,y){ return x+y;},0);  //数组求和;
var product=arr.reduce(funciton (x,y){ return x*y;},1 );  //数组求积;
var max=arr.reduce(function (x,y){ return x>y?x:y;});   //数组求最元素;
var big=arr.redureRight(funciton (accumulator,value){
  return Math.pow(value,accumulator);
});计算1^(2^(3^(4^5)))。乘方的优先顺序是从右到左。

       6.indexOf()和lastIndexOf()

       Array.indexOf()和lastIndexOf()方法,搜索整个数组中具有给定值的元素,返回找到第一个元素的索引,如果未找到返回-1;而LastIndexOf()方法是反响索引。第一个参数为,要搜索的元素,第二个参数,开始位置。  

 

 

posted @ 2014-05-14 12:10  冯际成  阅读(149)  评论(0编辑  收藏  举报

返回顶部