类数组与数组

一、何为类数组?

(1)类数组具有length属性,其他的属性是非负的整数

(2)类数组不具有数组的方法

常见的类数组有通过dom操作的返回值,arguments等

二、类数组和数组的区分方法

 var lei=document.getElementsByClassName("lei");
 var arr=[1,2,3,4];
 // 1、利用instanceof
 console.log(lei instanceof Array);//false
 console.log(arr instanceof Array);//true
// 2、利用constructor
console.log(lei.constructor===Array);//false
console.log(arr.constructor===Array);//true
// 3、利用toString方法
console.log(Object.prototype.toString.call(lei));//[object HTMLCollection]
console.log(Object.prototype.toString.call(arr));//[object Array]
// tostring方法也常用来区分数组和对象
var object=new Object();
console.log(Object.prototype.toString.call(object));//[object Object]
// 4、isArray()
console.log(Array.isArray(lei));  //false
console.log(Array.isArray(arr));  //true

三、类数组转换为数组

/ 1、循环
var tranlei=[];
for(var i=0;i<lei.length;i++){
      tranlei.push(lei[i]);
}
console.log(tranlei);
 console.log(tranlei instanceof Array);//true
//2、slice()
var tranlei1=Array.prototype.slice.call(lei);
console.log(tranlei1);
console.log(tranlei1 instanceof Array);//true

3、es6中的from(),第一个参数为要转化的类数组,第二个参数类似于map()可以对每个元素进行处理,将处理后的值放入返回的数组,Array.from()的另一个应用是,将字符串转为数组,然后返回字符串的长度

tranlei2=Array.from(lei,(s)=>{
console.log(s.innerHTML);
});
console.log(tranlei2 instanceof Array);//true
var str="123kkaklown";
console.log(Array.from(str).length); //11

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值