无法拼接子阵列

Can't splice away a subarray

我想在子数组中展平两个数组,用结果替换当前计数器之后的一个,并删除当前计数器子数组。出于某种原因, splice 对我不起作用;我收到错误消息: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]);

解决了,忘了我必须先将参数转换成合适的数组。愚蠢的我。