在javascript中交换数组元素的问题

时间:2012-11-15 00:58:59

标签: javascript arrays undefined

我是TA,一名学生进来询问为什么以下代码没有交换数组中的前2个元素而是导致未定义。这是学生给我看的代码:

var swapFirstTwoElementsOf = function (a) {
    a = [a[1],a[0]].concat(a.slice(2, a.length));
}

为什么返回undefined?

1 个答案:

答案 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);

以前,该函数正在评估未定义,因为它没有返回任何内容。