类数组(回顾)

概念

具有索引属性,和 length属性的对象,如arguments

const arrLike = {0: 'a', 1:'b', length:2}

类数组属性扩展

类数组可以把数组对象的属性拼到一起,但数组要自己添加

var arrLike = { 0: 'a', 1: 'b', length:2, 'push':[].push };
console.log(arrLike.push('c'));//3
console.log(arrLike);//{0: 'a', 1: 'b', 2: 'c', length: 3, push: ƒ}

类数组转数组的5种方法

1. Array.from

var arrLike = {0: 'a', 1: 'b', a: 3, length: 2};
Array.from(arrLike);//['a','b']

2. … 扩展运算符 + 迭代器

注意:类数组本身没有迭代器 Iterator

var arrLike = { 0: 'a', 1: 'b', length:2, [Symbol.iterator]:[][Symbol.iterator] };
console.log([...arrLike]);//['a','b']

3. Array.apply

var arrLike = {0: 'a', 1: 'b', a: 3, length: 2};
console.log(Array.apply(null, arrLike)) //[ 'a', 'b' ]  调用数组类自身的apply方法

4. 利用循环

var arrLike = { 0: 'a', 1: 'b', length:2 };
var arr = []
for(let i =0;i<arrLike.length;i++){
    arr.push(arrLike[i])
}
console.log(arr);//['a','b']

5. slice

var arrLike = {0: 'a', 1: 'b', a: 3, length: 2};
console.log([].slice.call(arrLike)) //[ 'a', 'b' ]  调用数组原型上的slice方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳晓黑胡椒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值