6.说出你知道的所有类数组对象转换为标准数组对象的方法(5,6)

书诚小驿2024/10/01前端面经JavaScript

1、Array.from() (ES6+ 推荐)

const arrayLike = { 0: "a", 1: "b", 2: "c", length: 3 };
const arr = Array.from(arrayLike); // ['a', 'b', 'c']

2、扩展运算符 ...(ES6+)

const arrayLike = document.querySelectorAll("div"); // NodeList
const arr = [...arrayLike]; // 转换为数组

3、Array.prototype.slice.call()(ES5)

const arrayLike = { 0: "a", 1: "b", length: 2 };
const arr = Array.prototype.slice.call(arrayLike); // ['a', 'b']

4、手动遍历

const arrayLike = { 0: "a", 1: "b", length: 2 };
const arr = [];
for (let i = 0; i < arrayLike.length; i++) {
  arr.push(arrayLike[i]);
}
// arr = ['a', 'b']

5、Array.prototype.concat.apply()

const arrayLike = { 0: "a", 1: "b", length: 2 };
const arr = Array.prototype.concat.apply([], arrayLike); // ['a', 'b']

6、Object.values()

const arrayLike = { 0: "a", 1: "b", length: 2 };
const arr = Object.values(arrayLike).slice(0, arrayLike.length); // ['a', 'b']
最后更新时间' 2025/3/9 18:24:05