类数组转化成数组的方法

264 阅读1分钟

类数组转换为数组的方法

  1. Array.prototype.slice.call()/[].prototype.slice.call()

使用条件

//部署了 Iterator 接口的类数组对象
var divs = document.querySeletorAll('div')
var divsArr = Array.prototype.slice.call('divs')
//类数组对象
let arrayLike = {
    '0': 'a',
    '1': 'b',
    '2': 'c',
    length: 3
};
var realArr = Array.from(arrayLike) // [a,b,c]
  1. Array.from()

使用条件:类数组对象 和 部署了 Iterator 接口的对象

//部署了 Iterator 接口的类数组对象
function transformToArr(a,b,c){
    var argArr = Array.from(arguments)
    console.log(argArr)
}
transformToArr(1,2,3) //[1,2,3]
//没有部署 Iterator 接口的类数组对象
let arrayLike = {
    '0': 'a',
    '1': 'b',
    '2': 'c',
    length: 3
};
var realArr = Array.from(arrayLike) // [a,b,c]
//没有部署 Iterator 接口的对象
var arrayLike2 = {
    '0': 'a',
    '1': 'b',
    '2': 'c'
};
var realArr1 = Array.from(arrayLike2) // []
  1. [...likeArray]

使用条件:部署了 Iterator 接口的类似数组的对象

var likeArray = document.getElementsByTagName('div')
var realArray = [...likeArray]
console.log(realArray)
  • 数组的filter方法
  • textContent属性表示啥
  • 字符串转换成数组的方法
  • Array.from('hello') // ['h', 'e', 'l', 'l', 'o'] [...'hell']// ["h", "e", "l", "l"]