([数字],数字)作为函数参数,如何从[]外部获取数字?

时间:2016-09-10 19:01:17

标签: javascript

function a(b) {

 var array = Array.prototype.slice.call(b);
 console.log(array);

 var array_two = ???;
 console.log(array_two);

}

a([1, 2, 3], 1, 2);

console.log(array);按预期输出[1, 2, 3]

我想在这里实现的是获取[1, 2] - []之后的数字,作为数组加入。我认为b[number]可以解决问题。 b[0] - 数组,b[1] - 数组之后的第一个数字,b[2] - 数组之后的第二个数字,但显然它不起作用。你知道任何解决方案吗?

3 个答案:

答案 0 :(得分:2)

您可以在Rest parameter函数中使用a,其中...c被设置为a函数的最后一个参数,并且可以在a函数体内访问作为具有标识符c的数组。见What is SpreadElement in ECMAScript documentation? Is it the same as Spread operator at MDN?



function a(b, ...c) {

 var array = Array.prototype.slice.call(b);
 console.log(array, c);
}

console.log(
  a([1, 2, 3], 1, 2)
  , a([1,2,3], "a", "b", "c", "d", "e", "f", "g")
);




答案 1 :(得分:1)

您可以将功能更改为

function a(array,firstArgAfterArray,secondArgAfterArray)

或者你可以得到数组之后的第一个和第二个args

arguments[1] , arguments[2]

答案 2 :(得分:1)

您可以使用预定义变量 arguments 将所有给定参数实现为数组。但在这种情况下,你必须删除第一个元素(因为它的array_one):

var array_two = Array.prototype.slice.call(arguments, 1);

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments