我是一名助教,一名学生问为什么以下代码不交换数组中的前2个元素,而是导致未定义结果。这是学生给我看的代码:

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


为什么返回未定义?

最佳答案

您需要返回变量。重新分配了本地引用,但未分配原始变量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);


以前,该函数将评估为undefined,因为它没有返回任何内容。

关于javascript - 在javascript中交换数组元素时出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13390028/

10-12 16:03