伪数组转数组实现方式

2017-12-12  本文已影响0人  一蓑烟雨任平生_cui

伪数组转数组方法

伪数组也叫类数组。像函数中的arguments(箭头函数除外)或者 一组元素返回的集合。

有时操作伪数组时希望能够通过数组的一些方法以方便操作。那么可以将伪数组转成数组,或者让想办法让伪数组能够直接使用真数组的方法。

以函数中的arguments为例

function foo() {
    return arguments;
}
var result = foo(2,3,4);

将伪数组转数组的方式:

  1. 创建一个空数组,通过循环将伪数组中的值添加到空数组中
var tempArr = [];
for(let i = 0; i < result.length; i++) {
    tempArr[i] = result[i];
}
console.log(tempArr) // [2,3,4]
  1. 通过上下文 调用Array原型上的slice()方法,不传任何参数
var arr = Array.prototype.slice.call(result);

// 或者

var tempArr = [];
var arr = temp.slice.call(result);
  1. 使用Es6中的Array.from()方法
var array = Array.from(result);

原型继承

  1. 使用原型继承,将伪数组的原型指向Array的原型,这样就可以使用数组的方法
result.__proto__ = Array.prototype;
// 这样伪数组就可以直接调用数组的方法
  1. jquery方法
`toArray()` 和 `makeArray()`
上一篇 下一篇

猜你喜欢

热点阅读