js 类数组转化数组

拈花ヽ惹草 提交于 2020-02-20 17:05:01

一、常见类数组集合

  (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;

    }

  }

  

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!