为什么要将伪数组转为真数组?
- 目的:为了让它能够调用数组的API
代码如下
var fakeArr = {
0: 'boJack',
1: 'Diane',
2: 'Todd',
3: 'peanut',
4: 'cat',
length: 5
};
-
遍历循环push
声明空数组,遍历伪数组添加到空数组中
var arr = [];
for (var i = 0; i < fakeArr.length; i++) {
arr.push(fakeArr[i]);
};
console.log(arr);//['boJack','Diane','Todd','peanut','cat']
-
apply
利用apply传参可以把所有参数放到数组或伪数组中,自动遍历来赋值给形参
var arr = [];
arr.push.apply(arr, fakeArr);// arr.push(fakeArr[0],fakeArr[1],fakeArr[2],fakeArr[3]);
console.log(arr);//['boJack','Diane','Todd','peanut','cat']
-
slice()
slice(start,end),返回start到end之间的元素,可以返回数组自身
var arr = Array.prototype.slice.apply(fakeArr);//直接调用原型中的slice方法,将默认this指向自身
console.log(arr);//['boJack','Diane','Todd','peanut','cat']
-
concat
concat连接数组,不会修改原来数组(浅复制)
var arr = [];
arr = arr.concat.apply(arr,weiArr);
console.log(arr);//['boJack','Diane','Todd','peanut','cat']