前端旧约

今天做别人不愿意做的事, 明天做别人不能做的事

伪数组及转换方法总结

什么是伪数组

无法直接调用数组方法或期望length属性有什么特殊的行为,不具有数组的push,pop等方法,但仍可以对真正数组遍历方法来遍历它们。

这里把符合以下条件的对象称为伪数组:

1,具有length属性

2,按索引方式存储数据

3,不具有数组一些方法

伪数组一般出现在下面的情况下:

  • function内的arguments 。

  • 通过document.forms,Form.elements,Select.options,document.getElementsByName() ,

    document.getElementsByTagName() ,childNodes/children 等方式获取的集合(HTMLCollection,NodeList)等。

  • 特殊写法的对象 ,如

    var obj={};
    obj[0] = "一";
    obj[1] = "二";
    obj[2] = "三";
    obj.length = 3;
    

将伪数组转换为真数组

通常有以下几种方法

以准换 arguments 为例

  1. const args = Array.prototype.slice.call(arguments)const args = [].prototype.slice.call(arguments)

  2. const args = Array.from(arguments)

  3. const args = [...arguments]

完,如有不恰当之处欢迎指正哦。

posted on 2020-01-08 16:00  前端旧约  阅读(228)  评论(0编辑  收藏  举报

导航