美文网首页
如何把一个类数组对象转换成数组

如何把一个类数组对象转换成数组

作者: 老虎爱吃母鸡 | 来源:发表于2016-10-24 21:16 被阅读0次

ES5的方法

主要借用[].slice.call()实现

var foo = function() {
    var arr = [].slice.call(arguments)
    var result = Object.prototype.toString.call(arr)
    console.log(arr) //[]
}()

ES6的方法

  1. 使用Array.from, 值需要对象有length属性, 就可以转换成数组
const arrayLike = {
  length: 5
}
let arr2 = Array.from(arrayLike)
//[undefined, undefined, undefined, undefined, undefined]
  1. 使用展开运算符
    但是展开运算符只能将某些数据结构转换成数组, 因为本质是调用遍历器接口(Symbol.iterator
    ),如果一个对象没有部署这个接口,就无法转换 --- 阮一峰ES6
// arguments对象
function foo() {
  var args = [...arguments];
}
// NodeList对象
[...document.querySelectorAll('div')]

兼容写法

const toArray = (() => Array.from ? Array.from : obj => [].slice.call(obj))();

Demo

阮一峰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']

相关文章

  • Array.from()方法

    Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。 将类数组对象转换为真正数组:...

  • ES6数组实例

    Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。那么什么是类数组对象呢?所谓类...

  • ES6之Array.from()方法

    Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。那么什么是类数组对象呢?所谓类...

  • ES6之Array.from()方法

    Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。 那么什么是类数组对象呢?所谓...

  • Array.from

    Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。 那么什么是类数组对象呢?所谓...

  • Array.from()方法之什么是类数组对象

    Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。 那么什么是类数组对象呢?所谓...

  • 对Javascript 类数组对象的理解与应用 | Argume

    这篇文章将要告诉你: 什么是类数组对象 类数组对象是如何出现的 如何避免使用类数组对象的常见问题 将类数组对象转换...

  • 2018-06-21深入简出ES6(数组新增的方法)

    1、将伪(类)数组转换成数组 把类数组转换成数组还有一种写法:let aLi = Array.from(oLi);...

  • ES6 扩展字符串数组对象常用方法整理

    数组扩展 Array.from() 将类数组对象和可遍历对象转换成数组 Array.of() 将一组值转换为数组 ...

  • ES6学习(数组操作)

    - Array.from 把类数组转换成数组 - Array.of 把一组值转换成数组 - Array.find ...

网友评论

      本文标题:如何把一个类数组对象转换成数组

      本文链接:https://www.haomeiwen.com/subject/bqnluttx.html