js将伪数组转换为标准数组

数组的概念:有序的集合, 索引从0开始 , 一定是连续不间断的 . 数组中的元素类型可以使任意数据类型,是一个 Array。
伪数组概念:具有 length 属性,其它属性(索引)为非负整数,但是不具备数组所具有的方法,是一个 Object。

举例:var fakeArray = { "0": "one", "1": "two", "2": "three", length: 3 };

常见的伪数组 :函数的参数arguments , dom元素[Nodelist HTMLCollection] , jQuery对象[$('div')];
判断是否为伪数组 : 

  1. 数据 instanceof Array
  2. Object.prototype.toString.call( 数据 ) === '[object Array]'

将伪数组转为数组 : 

  1. 声明一个空数组,通过遍历伪数组将它们添加到一个数组中。
    var aLi = document.querySelectorAll('li');
    var arr = [];
    for (var i = 0; i < aLi.length; i++) {
        arr[arr.length] = aLi[i]
    }

 

  2. 使用es6 新方法 Array.from(PseudoArray);
    
var pseudoArray = {
    '0':‘zero’,
    '1':‘one’,
    '2':‘two’,
    length:3
};
var arr = Array.from(pseudoArray);
console.log(arr)   // ['zero,'one','two']

 



posted @ 2019-07-13 15:02  小小黑加白  阅读(497)  评论(0编辑  收藏  举报