為什么要將偽數(shù)組轉(zhuǎn)為真數(shù)組?
- 目的:為了讓它能夠調(diào)用數(shù)組的API
代碼如下
var fakeArr = {
0: 'boJack',
1: 'Diane',
2: 'Todd',
3: 'peanut',
4: 'cat',
length: 5
};
-
遍歷循環(huán)push
聲明空數(shù)組,遍歷偽數(shù)組添加到空數(shù)組中
var arr = [];
for (var i = 0; i < fakeArr.length; i++) {
arr.push(fakeArr[i]);
};
console.log(arr);//['boJack','Diane','Todd','peanut','cat']
-
apply
利用apply傳參可以把所有參數(shù)放到數(shù)組或偽數(shù)組中,自動(dòng)遍歷來(lái)賦值給形參
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之間的元素,可以返回?cái)?shù)組自身
var arr = Array.prototype.slice.apply(fakeArr);//直接調(diào)用原型中的slice方法,將默認(rèn)this指向自身
console.log(arr);//['boJack','Diane','Todd','peanut','cat']
-
concat
concat連接數(shù)組,不會(huì)修改原來(lái)數(shù)組(淺復(fù)制)
var arr = [];
arr = arr.concat.apply(arr,weiArr);
console.log(arr);//['boJack','Diane','Todd','peanut','cat']