在ES6中,可以使用Array.from()方法将类数组对象(伪数组)转换为真正的数组。
伪数组是一种类数组对象,它具有类似数组的特性,但不具备数组的方法和属性。常见的伪数组包括arguments对象、DOM NodeList对象等。
下面是使用Array.from()方法将伪数组转换为数组的示例代码:
// 伪数组
var arrayLike = {
0: 'a',
1: 'b',
2: 'c',
length: 3
};
// 将伪数组转换为数组
var array = Array.from(arrayLike);
console.log(array); // ['a', 'b', 'c']
Array.from()方法接受一个可迭代对象作为参数,并返回一个新的数组。该方法会遍历可迭代对象并逐个将其元素添加到新数组中。
需要注意的是,Array.from()方法只能转换具有数值键和length属性的对象。因此,在将伪数组转换为数组之前,需要确保伪数组对象具有正确的键和长度属性。
另外,如果要将特定类型的伪数组转换为数组,可以使用Array.from()方法的第二个参数进行映射。例如,将DOM NodeList对象转换为数组:
// DOM NodeList对象
var nodeList = document.querySelectorAll('div');
// 将DOM NodeList对象转换为数组
var array = Array.from(nodeList, element => element.textContent);
console.log(array); // 包含了每个div元素的文本内容的数组
上述示例中,Array.from()方法的第二个参数是一个映射函数,用于将每个元素映射为其文本内容,并将映射结果添加到新数组中。
总结:使用Array.from()方法可以方便地将伪数组转换为数组,并且可以通过第二个参数进行元素的映射。