我是TA,一名学生进来询问为什么以下代码没有交换数组中的前2个元素而是导致未定义。这是学生给我看的代码:
var swapFirstTwoElementsOf = function (a) {
a = [a[1],a[0]].concat(a.slice(2, a.length));
}
为什么返回undefined?
答案 0 :(得分:4)
您需要返回变量。重新分配本地引用,但原始变量a不是。你需要做一些像
这样的事情var swapFirstTwoElementsOf = function (a) {
return [a[1],a[0]].concat(a.slice(2, a.length));
}
var myArray = [0, 1, 2, 3];
myArray = swapFirstTwoELementsOf(myArray);
以前,该函数正在评估未定义,因为它没有返回任何内容。