【问题标题】:Can't splice away a subarray不能拼接掉子数组
【发布时间】:2017-08-06 14:26:03
【问题描述】:

我想展平一个子数组中的两个数组,用结果替换当前计数器之后的一个,并删除当前计数器子数组。出于某种原因,拼接对我不起作用;我收到错误:arg.splice() 不是函数。 谁能解释一下为什么?

function sym(args) {
  var arg = arguments;
  for (var i = 0; i < arg.length; i++) {    
    if (arg[i+1]) {
      arg[i+1] = flatten(arg[i], arg[i+1]);
      arg.splice(i,1);
    }
  }


  function flatten(arr1, arr2) {
    return [arr1, arr2].reduce(
    function(a,b){
      return a.concat(b);
    }, []);
  }
}

sym([1, 2, 3], [5, 2, 1, 4]);

【问题讨论】:

  • arguments 不是一个数组,它是一个“类似数组”的对象。您需要将其“转换”为数组。 var arg = Array.prototype.slice.call(arguments);

标签: javascript arrays multidimensional-array splice


【解决方案1】:

解决了,忘了我必须先将参数转换为正确的数组。真傻。

【讨论】:

  • @gyre 我相信你必须等一天才能做到这一点。
猜你喜欢
  • 2013-06-30
  • 2013-02-13
  • 2021-11-16
  • 2011-03-19
  • 2015-05-18
  • 2020-06-20
  • 2020-01-09
  • 2018-06-24
  • 1970-01-01
相关资源
最近更新 更多