js 类数组转化数组

一、常见类数组集合

  (1)、arguements

      function fn(){

        var arr = [].slice.call(arguements,0);

      }

  (2)、HTMLCollection   元素集合  getElementsByTagName

      var oList = document.getElementsByTagName("div");

      var newArr = [].slice.call(oList);

  (3)、NodeList   节点集合    getElementsByName

      var nList = document.getElementsByName("divname");

      var newArr1 = [].slice.call(nList);

 

  //注:arguements 借助slice方法将类数组转化成数组在各个浏览器中都支持,但是借助slice方法将HTMLCollection(元素集合)或者NodeList(节点集合)类数组转化成数组会在IE6-IE8不兼容,会报错:this不是对象

 

  通过以下方式处理兼容

  var myUtils = {

    // 实现将类数组转化为数组

    listToArray:function(likeAry){

      var arr = [ ];

      try{

        arr =Array.prototype.slice.call(likeAry);

      }

      catch(e){

        for(var i = 0; i < likeAry.length; i++){

          arr[arr.length] = likeAry[i];

        }

      }

      return arr;

    }

  }

  

 

posted on 2018-04-07 18:35  ywx354980  阅读(426)  评论(0编辑  收藏  举报