js将伪数组转成真数组

所谓伪数组,当一个对象具有以下特点:

  1. 可以使用索引对数据进行操作;
  2. 具有length(长度)属性;
  3. 不能使用数组的方法,如push,pop等真数组方法。

真伪数组区别:

  1. 对象没有数组的Array.prototype 的属性值,类型是 Object ,而数组类型是 Array
  2. 数组是索引,对象是键值对
  3. 使用对象创建伪数组,伪数组可以使用部分方法

方法1:遍历:创建一个空数组,循环遍历伪数组,将遍历出的数据逐一放在空数组中


var newArr = [];           // 先创建空数组
for(var i = 0; i < arr.length; i++){
    
      // 循环遍历伪数组
    newArr.push(arr[i]);;    // 取出伪数组的数据,逐个放在真数组中
}

newArr.push("hello");
console.log(newArr);   // hello

方法2(常用):arr.push.apply(arr,伪数组)


var newArr = [];
newArr.push.apply(newArr, arr);

方法3:使用slice方法:利用Array原型对象的slice方法,配合apply,将slice中的this指向伪数组


var newArr = Array.prototype.slice.apply(arr);

方法4:利用ES6提供的Array的from方法


var newArr = Array.from(arr);

猜你喜欢

转载自blog.csdn.net/lannieZ/article/details/111593802