伪数组:无法调用数组的方法,但是有length属性,又可以索引获取内部项的数据结构。

比如:arguments、getElementsByTagName等一系列dom获取的NodeList对象,他们 都算。
 
转换方法
 
一:
假设这里有个伪数组:pagis
let arr = [].slice.call(pagis)

console.log(arr)   这时arr就是真数组了。

二:

let arr  = Array.prototype.slice.call(pagis);

利用了slice传一个数组/集合,就会直接返回这个集合的原理。拿到的也是数组。

也就可以使用数组的各种方法了。

三:

 var arr1 = [],
len1 = pagis.length;
for (var i = 0; i < len1; i++) {
arr1.push(pagis[i]);
}

就是简单的for循环,把类数组的每一项都push到真正的数字arr1中

与之类似的另一种写法:
(转换函数中的arguments伪数组为真数组,是在学习es6时,将扩展运算符的收集功能在经过babel转换后得到的es5代码)

 for (var _len = arguments.length, arr = new Array(_len), _key = 0; _key < _len; _key++) {
arr[_key] = arguments[_key];
}

四:

 var func = Function.prototype.call.bind(Array.prototype.slice);
console.log('类数组转换成数组:', func(pagis));

五:...解构赋值

 function args(){
console.log(arguments);
let newArr = [...arguments];
console.log(newArr);
}
args(1,2,3,23,2,42,34);

六:Array.from

 function args(){
console.log(arguments);
let newArr2 = Array.from(arguments);
console.log(newArr2);
}
args(1,2,3,23,2,42,34);

2019-05-07 16:48:27

js - 伪数组转化为数组的几种方法整理(更新中...)的更多相关文章

  1. js中怎么把类数组转化为数组

    说起伪数组,首先想到arguments, 这个我们函数参数的一个类数组,是类数组的代表. 1.拥有length属性,可以使用下标来访问元素,这两点和数组相同. 2.不能使用数组的方法,他们不能使用Ar ...

  2. js二维数组定义和初始化的三种方法总结

    js二维数组定义和初始化的三种方法总结 方法一:直接定义并且初始化,这种遇到数量少的情况可以用var _TheArray = [["0-1","0-2"],[& ...

  3. 实现类数组转化成数组(DOM 操作获得的返回元素值是一个类数组)

    目标 实现类数组转化成数组 实例 链接地址 使用方法 const foo = document.querySelectorAll('.result') //链接地址输入控制台输入这行代码 const ...

  4. Knockout获取数组元素索引的2种方法,在MVC中实现

    原文:Knockout获取数组元素索引的2种方法,在MVC中实现 在遍历数组.集合的时候,通常要获取元素的索引,本篇体验使用Knockout获取索引的2种方法. 假设有这样的一个模型: namespa ...

  5. 详解JavaScript数组过滤相同元素的5种方法

    详解JavaScript数组过滤相同元素的5种方法:https://www.jb51.net/article/114490.htm

  6. JS中将对象转化为数组

    前言 其实这本来应该是一个很基础的问题了,但我之做一想记录一下是因为之前因为对象转数组的时候卡住了后来弄了出来,但最近再遇到这个问题时竟然又卡主了,所以,关于这个问题,如何把一个对象{'未完成':5, ...

  7. Js将类数组转化为数组

    说起伪数组,大家可能会想到arguments, 这个我们函数参数的一个类数组,是类数组的代表. 1.拥有length属性,可以使用下标来访问元素,这两点和数组相同. 2.不能使用数组的方法,他们不能使 ...

  8. js数组和字符串去重复几种方法

    js数组去重复几种方法 第一种:也是最笨的吧. Array.prototype.unique1 = function () { var r = new Array(); label:for(var i ...

  9. Array.from()类数组转化为数组的用法

    类数组对象转化为数组 let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3 }; let arr = Array.from(arrayLi ...

随机推荐

  1. Linux之为集群内的机器设定主机名

    作业二:为集群内的机器设定主机名,利用/etc/hosts文件来解析自己的集群中所有的主机名,相应的,集群的配置应该改成使用主机名的方式 1.主机信息配置并解析 [root@localhost ~]# ...

  2. mvc中使用Pagination,对其进行再封装

    对其进行再次封装: (function($) { $["fn"]["easyPaging"] = function(o) { if (!o.pageSelect ...

  3. Unity3D性能优化最佳实践(四)资源审查

    Asset auditing - 资源审查 许多项目发生效能问题的真正原因只是由于人员操作不当或是试东试西,而不小心改到导入设定影响到导入的资源.(例如最近的gitlab惨案) 对于较大规模的项目,最 ...

  4. java文章标题及文章相似度计算hash算法实现

    参看了 https://github.com/awnuxkjy/recommend-system 对方用了 余弦 函数实现相似度计算,我则用的是 hanlp+hash 算法(Hash算法总结) 再看服 ...

  5. Python 汉字转拼音

    本文参考: Python中文转拼音代码(支持全拼和首字母缩写) 中文中不可以有“()” # -*- coding: utf-8 -*- __version__ = '0.9' __all__ = [& ...

  6. SSE图像算法优化系列二十一:基于DCT变换图像去噪算法的进一步优化(100W像素30ms)。

    在优化IPOL网站中基于DCT(离散余弦变换)的图像去噪算法(附源代码) 一文中,我们曾经优化过基于DCT变换的图像去噪算法,在那文所提供的Demo中,处理一副1000*1000左右的灰度噪音图像耗时 ...

  7. V-rep学习笔记:切削

    V-REP allows you to perform cutting simulations. The user can model almost any type of cutting volum ...

  8. AngularJS 使用ng-repeat报错

    [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify uniq ...

  9. Python的数据库mongoDB的入门操作

    Python代码: import pymongo # 获取本地端口,激活mongo客户端 client = pymongo.MongoClient('localhost',27017) # 创建一个数 ...

  10. CentOS 安装 Redis 5

    https://redis.io/download下载最新stable版,当前最新版为redis-5.0.3.tar.gz cd /usr/local/src && wget http ...