zoukankan      html  css  js  c++  java
  • 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所指向的对象)

    //用法一
    var arr = [1,2,3,4,5,6];
    arr.forEach(function(e)
    {
         alert(e);
    }
    );

    //用法二
    var arr = [1,2,3,4,5,6];
    var obj 
    = "hello!";
    arr.forEach(function(e)
    {
        alert(e
    +'--'+this);
    }
    ,obj);

    //用法三
    function putElt(element, index, array) {
        document.write(
    "pos [" + index + "] in array (" + array + ") is " + element + '<br>');
    }

    [
    259].forEach(putElt);

    Array对象的filter方法

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

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

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

    Array对象的map方法:

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

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

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

    Array对象的every方法:

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

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

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

    Array对象的some方法:

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

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

    var result = [1,2,3,4,5].every(function(e){
          
    return e > 3;
    }
    );
    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部分终于看好了,自己写的语言表达上感觉有些地方有欠缺,呵呵。。。

  • 相关阅读:
    hdu 2019 数列有序!
    hdu 2023 求平均成绩
    HDU 5805 NanoApe Loves Sequence (思维题) BestCoder Round #86 1002
    51nod 1264 线段相交
    Gym 100801A Alex Origami Squares (求正方形边长)
    HDU 5512 Pagodas (gcd)
    HDU 5510 Bazinga (字符串匹配)
    UVALive 7269 Snake Carpet (构造)
    UVALive 7270 Osu! Master (阅读理解题)
    UVALive 7267 Mysterious Antiques in Sackler Museum (判断长方形)
  • 原文地址:https://www.cnblogs.com/luluping/p/1181691.html
Copyright © 2011-2022 走看看