我是一名助教,一名学生问为什么以下代码不交换数组中的前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/