数据处理 | 类数组转数组(3种)

灵魂拷问:类数组转数组的方式你知道多少呢?

方式1: Array.prototype.slice()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function arrayLike2Array(arrayLike) {
return Array.prototype.slice.call(arrayLike);
}

// test
const arrayLike = {
'0': 'Katrina',
'1': 'Jack',
'2': 'Kate',
'3': 'Jenny',
length: 4
};
const array = arrayLike2Array(arrayLike);
console.log(array); // ['Katrina', 'Jack', 'Kate', 'Jenny']

方式2:Array.from()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function arrayLike2Array(arrayLike) {
return [...arrayLike];
}

// test
const arrayLike = {
'0': 'Katrina',
'1': 'Jack',
'2': 'Kate',
'3': 'Jenny',
length: 4
};
const array = arrayLike2Array(arrayLike);
console.log(array); // ['Katrina', 'Jack', 'Kate', 'Jenny']

方式3: 拓展运算符

1
2
3
4
5
6
7
8
9
10
11
12
function arrayLike2Array(arrayLike) {
return [...arrayLike];
}

// test
function fn() {
console.log(arguments)
return [...arguments];
}

const array = fn(1,2,3,4,5,6);
console.log(array); // [ 1, 2, 3, 4, 5, 6 ]