天天看點

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所指向的對象)

mootools【二】 - Array篇

// 用法一

mootools【二】 - Array篇

var arr  =  [ 1 , 2 , 3 , 4 , 5 , 6 ];

mootools【二】 - Array篇
mootools【二】 - Array篇

arr.forEach(function(e) ... {

mootools【二】 - Array篇

     alert(e);

mootools【二】 - Array篇

} );

mootools【二】 - Array篇
mootools【二】 - Array篇

// 用法二

mootools【二】 - Array篇

var arr  =  [ 1 , 2 , 3 , 4 , 5 , 6 ];

mootools【二】 - Array篇

var obj  =   " hello! " ;

mootools【二】 - Array篇
mootools【二】 - Array篇

arr.forEach(function(e) ... {

mootools【二】 - Array篇

    alert(e+'--'+this);

mootools【二】 - Array篇

} ,obj);

mootools【二】 - Array篇
mootools【二】 - Array篇

// 用法三

mootools【二】 - Array篇
mootools【二】 - Array篇

function putElt(element, index, array)  ... {

mootools【二】 - Array篇

    document.write("pos [" + index + "] in array (" + array + ") is " + element + '<br>');

mootools【二】 - Array篇

}

mootools【二】 - Array篇

[ 2 ,  5 ,  9 ].forEach(putElt);

Array對象的filter方法

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

作用:疊代數組,每個元素作為參數執行callBack方法,由callBack方法作為資料過濾網,最後傳回過濾後的一個數組

mootools【二】 - Array篇
mootools【二】 - Array篇

var result  =  [ 1 , 2 , 3 , 4 , 5 ].filter(function(e) ... {

mootools【二】 - Array篇

      return e > 3;

mootools【二】 - Array篇

} );

mootools【二】 - Array篇

alert(result);    // 結果為4,5

Array對象的map方法:

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

作用:疊代數組,每個元素作為參數執行callBack方法,由callBack方法對每個元素進行處理,最後傳回處理後的一個數組

mootools【二】 - Array篇
mootools【二】 - Array篇

var result  =  [ 1 , 2 , 3 , 4 , 5 ].map(function(e) ... {

mootools【二】 - Array篇

      return e + 'px';

mootools【二】 - Array篇

} );

mootools【二】 - Array篇

alert(result);  //結果為1px,2px,3px,4px,5px

Array對象的every方法:

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

作用:它的意思就是:是否數組中的每個元素都通過了callBack的處理?如果是,則傳回true,如果有一個不是,則立馬傳回false

mootools【二】 - Array篇
mootools【二】 - Array篇

var result  =  [ 1 , 2 , 3 , 4 , 5 ].every(function(e) ... {

mootools【二】 - Array篇

      return e > 3;

mootools【二】 - Array篇

} );

mootools【二】 - Array篇

alert(result);     // 傳回false

Array對象的some方法:

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

作用:它的意思就是:是否數組中的有元素通過了callBack的處理?如果有,則立馬傳回true,如果一個都沒有,則傳回false

mootools【二】 - Array篇
mootools【二】 - Array篇

var result  =  [ 1 , 2 , 3 , 4 , 5 ].every(function(e) ... {

mootools【二】 - Array篇

      return e > 3;

mootools【二】 - Array篇

} );

mootools【二】 - Array篇

alert(result);     // 傳回true

Array對象的indexOf方法:

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

作用:在數組中查找是否含有指定對象,如果有,傳回對象所在的索引,否則傳回-1;第二個參數是可選參數,如果指定的話,比如指定3,則表示從數組的第4個元素開始查找;預設從第0個元素開始查找。

var x1 = [1,2,3,4,5].indexOf(2);     //結果為1

var x2 = [1,2,3,4,5].indexOf(2,3);  //結果為-1

----------------------以下的方法是mootools提供的Array的專有擴充,和JavaScript标準無關--------------------------

each

作用:它的用法和作用與forEach一模一樣,參看上文的forEach

copy

作用:複制數組元素到新的數組中;預設是全部複制,如果指定了開始索引和長度的話,則可以按指定形式複制

var a = [1,2,3,4,5,6];

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

var b2 = a.copy(2,2);   //[3,4]

remove

作用:删除數組中指定值的元素

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

作用:查找數組中是否有指定的值

var a = [1,2,3,4,5,6];

var b = a.test(11);      //fasle var c = a.test(2);        //true

extend

作用:把另一個數組追加到本數組後(不排除相同值的)

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,本數組中的值做為值,組成一個鍵值對象(長度為兩者中較小的那個)

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方法是一樣的作用

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等。不過管它正常不正常,用起來的形式還是一樣的

var a = [1,2,3,4];

$each(a,function(e){

     alert(e);

});

恩,Array部分終于看好了,自己寫的語言表達上感覺有些地方有欠缺,呵呵。。。

繼續閱讀