mootools【二】 - Array篇

由于JavaScript1.5对Array增加了一些比较好用的方法,如forEach,filter,map,every,som,indexOf,但是在还不支持JavaScript1.5的浏览器里是不能用得,所以,mootools它通过扩展Array来使其实现对这些方法的支持:

---------------------------------Array.js---------------------------------

Array对象的forEach方法

原型:Array.prototype.forEach(callBack: Function, thisObject: Object)

作用:对数组进行迭代操作,它有两个参数,第一个参数callBack是每次迭代所执行的函数,第二个参数thisObject可选,是要绑定到迭代执行的函数上的对象(也就是函数callBack中的this所指向的对象)

js 代码
 
  1. //用法一  
  2. var arr = [1,2,3,4,5,6];  
  3. arr.forEach(function(e){  
  4.      alert(e);  
  5. });  
  6.   
  7. //用法二  
  8. var arr = [1,2,3,4,5,6];  
  9. var obj = "hello!";  
  10. arr.forEach(function(e){  
  11.     alert(e+'--'+this);  
  12. },obj);  
  13.   
  14. //用法三  
  15. function putElt(element, index, array) {  
  16.     document.write("pos [" + index + "] in array (" + array + ") is " + element + '  
  17. ');  
  18. }  
  19. [2, 5, 9].forEach(putElt);  

 

Array对象的filter方法

原型:Array.prototype.filter(callBack: Function, thisObject: Object)

作用:迭代数组,每个元素作为参数执行callBack方法,由callBack方法作为数据过滤网,最后返回过滤后的一个数组

js 代码
 
  1. var result = [1,2,3,4,5].filter(function(e){  
  2.       return e > 3;  
  3. });  
  4. alert(result);   //结果为4,5  

 

Array对象的map方法:

原型:Array.prototype.map(callBack: Function, thisObject: Object)

作用:迭代数组,每个元素作为参数执行callBack方法,由callBack方法对每个元素进行处理,最后返回处理后的一个数组

js 代码
 
  1. var result = [1,2,3,4,5].map(function(e){  
  2.       return e + 'px';  
  3. });  
  4. alert(result);  //结果为1px,2px,3px,4px,5px  

 

Array对象的every方法:

原型:Array.prototype.every(callBack: Function, thisObject: Object)

作用:它的意思就是:是否数组中的每个元素都通过了callBack的处理?如果是,则返回true,如果有一个不是,则立马返回false

js 代码
 
  1. var result = [1,2,3,4,5].every(function(e){  
  2.       return e > 3;  
  3. });  
  4. alert(result);    //返回false  

 

Array对象的some方法:

原型:Array.prototype.some(callBack: Function, thisObject: Object)

作用:它的意思就是:是否数组中的有元素通过了callBack的处理?如果有,则立马返回true,如果一个都没有,则返回false

js 代码
 
  1. var result = [1,2,3,4,5].every(function(e){  
  2.       return e > 3;  
  3. });  
  4. alert(result);    //返回true  

 

Array对象的indexOf方法:

原型:indexOf(searchElement: Object, fromIndex: Number)

作用:在数组中查找是否含有指定对象,如果有,返回对象所在的索引,否则返回-1;第二个参数是可选参数,如果指定的话,比如指定3,则表示从数组的第4个元素开始查找;默认从第0个元素开始查找。

js 代码
 
  1. var x1 = [1,2,3,4,5].indexOf(2);     //结果为1  
  2. var x2 = [1,2,3,4,5].indexOf(2,3);  //结果为-1  

 

----------------------以下的方法是mootools提供的Array的专有扩展,和JavaScript标准无关--------------------------

each

作用:它的用法和作用与forEach一模一样,参看上文的forEach

 

copy

作用:复制数组元素到新的数组中;默认是全部复制,如果指定了开始索引和长度的话,则可以按指定形式复制

js 代码
 
  1. var a = [1,2,3,4,5,6];  
  2. var b1 = a.copy();         //[1,2,3,4,5,6]  
  3. var b2 = a.copy(2,2);   //[3,4]  

 

remove

作用:删除数组中指定值的元素

js 代码
 
var a = [1,2,2,3,4,5,6];   var b = a.remove(4);  //[1,2,2,3,5,6]   var c = a.remove(2);  //[1,3,4,5,6]  

 

test

作用:查找数组中是否有指定的值

js 代码
 
var a = [1,2,2,3,4,5,6];   var b = a.remove(4);  //[1,2,2,3,5,6]   var c = a.remove(2);  //[1,3,4,5,6]  

 

extend

作用:把另一个数组追加到本数组后(不排除相同值的)

js 代码
 
var a = [1,2,3,4];   var b = [1,11,12];   a.extend(b);   alert(a);             //1,2,3,4,1,11,12  

 

associate

作用:把另一个数组中的值作为key,本数组中的值做为值,组成一个键值对象(长度为两者中较小的那个)

js 代码
 
var v = [1,2,3,4,5];   var k = ['one','two','three'];   var kv = v.associate(k);   alert(kv['one']);               //1   var v = [1,2];   var k = ['one','two','three'];   var kv = v.associate(k);   alert(kv['one']);               //1   alert(kv['three']);             //undefined  

$A

作用:和Array的copy方法是一样的作用

js 代码
 
var a = [1,2,3,4];   var b = $A(a);           //[1,2,3,4]   var c = $A(a,1,2);     //[2,3]  

 

$each

作用:功能基本和Array的forEach方法相同,官方文档上说可用于非常规数组的迭代,如由getElemntsByTagName调用产生的结果,以及参数数组arguments等。不过管它常规不常规,用起来的形式还是一样的

js 代码
 
var a = [1,2,3,4];   $each(a,function(e){        alert(e);   });  

 

恩,Array部分终于看好了,自己写的语言表达上感觉有些地方有欠缺,呵呵。。。



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值