Super-scarlett

js中将类数组转换为数组的几种方法

1.slice方法

最经典的方法,使用Array的slice方法,此方法如果不传参数的话会返回原数组的一个拷贝,因此可以用此方法转换类数组到数组;

// 创建一个类数组对象
var alo = {0:"a", 1:"b",2:"c", length:3};

// 转化
var arr = Array.prototype.slice.call(alo);

console.log(
    Array.isArray(alo) // false
)

console.log(
    Array.isArray(arr) // true
)

console.log(alo); // { \'0\': \'a\', \'1\': \'b\', \'2\': \'c\', length: 3 }
console.log(arr); // [ \'a\', \'b\', \'c\' ]

2. Array.from()

是ES6中的方法,用于将类数组转换为数组。

let arrayLike = {
    \'0\': \'a\',
    \'1\': \'b\',
    \'2\': \'c\',
    length: 3
};

// ES5的写法
var arr1 = [].slice.call(arrayLike); // [\'a\', \'b\', \'c\']

// ES6的写法
let arr2 = Array.from(arrayLike); // [\'a\', \'b\', \'c\']

只要有length属性的对象,都可以应用此方法转换成数组。

3. 扩展运算符

ES6中的扩展运算符...也能将某些数据结构转换成数组,这种数据结构必须有便利器接口。

扩展运算符背后调用的是遍历器接口(Symbol.iterator),如果一个对象没有部署这个接口,就无法转换。

var args = [...arguments];

4. $.makeArray()

jQuery的此方法可以将类数组对象转化为真正的数组

var arr = $.makeArray(arguments);

 

发表于 2017-07-06 13:32  Super_Mi  阅读(1480)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章:

  • 2021-11-20
  • 2021-11-20
  • 2021-11-17
  • 2021-04-05
  • 2021-12-10
  • 2021-11-17
  • 2021-10-21
猜你喜欢
  • 2021-11-20
  • 2021-11-20
  • 2021-11-20
  • 2021-11-30
  • 2021-11-20
  • 2021-11-20
  • 2021-11-20
相关资源
相似解决方案