它应该很简单,但我无法理解为什么这不起作用:
function swapValues() {
var args = Array.prototype.slice.call(arguments);
var temp = args[0];
args[0] = args[1];
args[1] = temp;
return temp;
}
var arr = [1,2]
swapValues(arr);
它应该交换值 - 但它不会。
答案 0 :(得分:0)
arguments
是参数的对象,因此args[0]
为[1,2]
(第一个参数),args[1]
为undefined
。
你想要这样的东西:
function swapValues() {
var arg = Array.prototype.slice.call(arguments)[0];
var temp = arg[0];
arg[0] = arg[1];
arg[1] = temp;
return arg;
}
答案 1 :(得分:0)
我几乎没有改变你的代码,但这样看起来更好。希望它有所帮助。
function swapValues(arr) {
var t = arr[0]; arr[0] = arr[1]; arr[1]=t;
return arr;
}
var arr = [1,2]
swapValues(arr);