伪数组和真数组之间的相互转换

151 阅读1分钟

伪数组转真数组

  • 注意点:如果需要将伪数组转成真数组/伪数组都需要先将伪数组转成真数组,然后再用真数组转成伪数组
   //方法一
   function sum() {
      //函数中的'arguments'就是伪数组
      let arr = [];
      [].push.apply(arr, arguments);//方法缺陷,无法兼容ie8及以下
      return arr
    }
    let res = sum(1, 2)
    console.log(res);//[1.2]
    
    //方法二
    function sum() {
      //函数中的'arguments'就是伪数组
      let arr = [].slice.call(arguments);//数组的slice方法
      return arr
    }
    let res = sum(1, 2)
    console.log(res);//[1,2]

真数组转伪数组

    let temArr = [1, 2, 1, 2];
    let obj = {};
    [].push.apply(obj, temArr);
    console.log(obj);//{0: 1, 1: 2, 2: 1, 3: 2, length: 4}