类数组转化为数组的4种方式

# 类数组转化为数组的4种方式

let arrayLike = {
  0: '123',
  1: '456',
  length: 2,
};

// Method 1
// let arr = [...arguments];
let arr = [];
for (let i = 0; i < arrayLike.length; i++) {
  arr.push(arrayLike[i]);
}
console.log(arr);

// Method 2
console.log(Array.from(arrayLike));

// Method 3
// [].slice === Array.prototype.slice
// [].slice.call(arrayLike)
console.log(Array.prototype.slice.call(arrayLike));

// Method 4
[...document.querySelectorAll('p')]; // 扩展运算符

arrayLike[Symbol.iterator] = function * () {
 for(let i = 0; i < this.length; i++) {
  yield this[i];
 }
}
const ret = [...arrayLike];
console.log(ret);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function transformArr() {
 let arr = [...arguments]
 let arr1 = Array.prototype.slice.call(arguments)
 let arr2 = Array.from(arguments)
 let arr3 = []
 for (let i = 0; i < arguments.length; i++) {
  arr3.push(arguments[i])
 }
}
1
2
3
4
5
6
7
8
9
上次更新: 2022/7/26 下午2:33:39