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]
- 数组之后的第二个数字,但显然它不起作用。你知道任何解决方案吗?
答案 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