伪/类数组

1》伪数组例子

函数的 argument参数,像调用getElementsByTagName,document.childNodes之类的,它们都返回 NodeList对象都属于伪数组。
2》如何判断数据是不是伪数组
是对象,有length不为0,值必须是number类型,这个对象还得按照下标存储数据

3》将伪数组转化为标准数组

方法一声明一个空数组,通过遍历伪数组把它们重新添加到新的数组中

 var aLi = document.querySelectorAll('li');
 var arr = [];
  for (var i = 0; i < aLi.length; i++) { arr[arr.length] = aLi[i]}

方法二使用数组的slice()方法 它返回的是数组,使用call或者apply指向伪数组 IE8以及更早版本除外,因为IE8及更早版本以前将NodeList实现为一个对象

​var arr = Array.prototype.slice.call(aLi);

所有浏览器都可以运行

function convertToArray(nodes){
	var array=null;
	try{
		array=Array.prototype.slice.call(nodes,0)
	}catch(ex){
        array=new Array();
        for(var i=0,len=nodes.length;i<len;i++){
        	array.push(nodes[i])
        }
}
	return array;
}

方法三:ES6中数组的新方法Array. from()

function test(){
var arg = Array.from(arguments);
arg.push(5);
console.log(arg);//1,2,3,4,55 6 }
test(1,2,3,4);

方法四:任何Interator接口的对象都可以用扩展运算符转为真正的数组

[...document.querySelectorAll("div")]//可遍历的对象转换成真正的数组

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值