JavaScript 1.6 引入了几个新的Array (数组)方法

转自: http://www.phpweblog.net/fuyongjie/archive/2008/12/23/6238.html

JavaScript  1.6  引入了几个新的Array 方法,具体的介绍见:https: // developer.mozilla.org/cn/New_in_JavaScript_1.6

 

JavaScript 
1 .6在firefox1.5及其后版本支持,但在IE6,IE7甚至IE8上仍然未被支持。jquery的工具方法中提供了类似的功能。

 

1 、Array.forEach()和jquery的$().each()。在数组中的每个项上运行一个函数。类似java5增强的for循环。见:http: // www.ibm.com/developerworks/cn/java/coretech/java- lang.html?S_TACT=105AGX52&S_CMP=content#N10461

 
Js代码 复制代码

   
1 var  ary  =  [ 2 , 4 , 6 , 8 ];  
   
2 .   
   
3 // js1.6 Array.forEach方法  
    4 . ary.forEach( function (i){alert(i);});  
   
5 .   
   
6 // 看看jquery的写法  
    7 . $(ary).each( function (){alert( this );});  
   
8 // 还可以写成这样  
    9 . $(ary).each( function (index,item){alert(item);}); // index是元素的索引,item是该元素  

var  ary  =  [ 2 , 4 , 6 , 8 ];

// js1.6 Array.forEach方法
ary.forEach( function (i){alert(i);});

// 看看jquery的写法
$(ary).each( function (){alert( this );});
// 还可以写成这样
$(ary).each( function (index,item){alert(item);}); // index是元素的索引,item是该元素

 

2 、Array.filter()和jquery的$.grep()。在数组中的每个项上运行一个函数,并将函数返回真值的项作为数组返回。简单的说就是用一个条件过滤掉不符合的数组元素,剩下的符合条件的元素组合成新的数组返回。

 
Js代码 复制代码

   
1 var  ary  =  [ 2 , 4 , 6 , 8 ];  
   
2 .   
   
3 // js1.6 Array.filter()方法  
    4 var  otherAry1  =  ary.filter( function (item){ return  item > 4 ;});  
   
5 . alert(otherAry1); // 输出6,8  
    6 .   
   
7 // jquery写法(注意和$.each的区别)  
    8 // 此处你们函数中第一个参数是数组元素自身,第二个参数是数组元素索引  
    9 // 而$().each方法刚好相反,作者应该统一下。  
   10 var  otherAry2  =  $.grep(ary, function (item,index){ return  item > 4 ;});  
  
11 . alert(otherAry2); // 输出6,8  

var  ary  =  [ 2 , 4 , 6 , 8 ];

// js1.6 Array.filter()方法
var  otherAry1  =  ary.filter( function (item){ return  item > 4 ;});
alert(otherAry1);
// 输出6,8

// jquery写法(注意和$.each的区别)
//
此处你们函数中第一个参数是数组元素自身,第二个参数是数组元素索引
//
而$().each方法刚好相反,作者应该统一下。
var  otherAry2  =  $.grep(ary, function (item,index){ return  item > 4 ;});
alert(otherAry2);
// 输出6,8

 

3 、Array.map()和jquery的$.map()。在数组中的每个项上运行一个函数,并将全部结果作为数组返回。这个方法非常强大,尤其是作用于DOM数组时(在abcc项目上用过,对每个查询模块DOM生成查询字符串)。简单说就是把每个数组元素运算的结果作为新数组元素(还是很拗口)。

 
Js代码 复制代码

   
1 var  ary  =  [ 2 , 4 , 6 , 8 ];  
   
2 .   
   
3 // js1.6 Array.map()方法  
    4 var  newAry1  =  ary.map( function (item){ return  item + 1 ;}); // 每个元素加1  
    5 . alert(newAry1); // 输出3,5,7,9  
    6 .   
   
7 // jquery写法  
    8 var  newAry2  =  $.map(ary, function (item,index){ return  item + 1 ;});  
   
9 . alert(newAry2); // 输出3,5,7,9  

var  ary  =  [ 2 , 4 , 6 , 8 ];

// js1.6 Array.map()方法
var  newAry1  =  ary.map( function (item){ return  item + 1 ;}); // 每个元素加1
alert(newAry1); // 输出3,5,7,9

// jquery写法
var  newAry2  =  $.map(ary, function (item,index){ return  item + 1 ;});
alert(newAry2);
// 输出3,5,7,9

 

4 、Array.every()方法。检查数组元素是否都符合某个条件,只要有一个不符合返回false,否则返回true

 
Js代码 复制代码

   
1 var  ary  =  [ 2 , 4 , 6 , 8 , 10 ];  
   
2 .   
   
3 . alert(ary.every( function (item){ return  item > 1 })); // true  
    4 . alert(ary.every( function (item){ return  item > 2 })); // false  

var  ary  =  [ 2 , 4 , 6 , 8 , 10 ];

alert(ary.every(
function (item){ return  item > 1 })); // true
alert(ary.every( function (item){ return  item > 2 })); // false

 

5 、Array.some()方法。检查数组中元素是否符合某个条件,只要有一个符合返回true,否则返回false

 
Js代码 复制代码

   
1 var  ary  =  [ 2 , 4 ,, 6 , 8 , 10 ];  
   
2 .   
   
3 . alert(ary.some( function (item){ return  item > 9 ;})); // true  
    4 . alert(ary.some( function (item){ return  item > 10 ;})); // false  

var  ary  =  [ 2 , 4 ,, 6 , 8 , 10 ];

alert(ary.some(
function (item){ return  item > 9 ;})); // true
alert(ary.some( function (item){ return  item > 10 ;})); // false

 

 

ps:以上代码需在firefox1.
5 ++ 上运行

你可能感兴趣的:(JavaScript 1.6 引入了几个新的Array (数组)方法)