我是一名助教,一名学生进来询问为什么以下代码没有交换数组中的前 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);
以前,该函数的计算结果为未定义,因为它没有返回任何内容。
关于javascript - 在 javascript 中交换数组元素时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13390028/