【发布时间】:2020-12-11 23:11:39
【问题描述】:
我想在不使用 reverse 方法的情况下将数组反转到位。我尝试了以下代码:
function reverseArray(arr) {
return arr.map(() => {
return arr.pop()
})
}
console.log(reverseArray([1, 2, 3, 4]));
//logs [4,3,undefined,undefined]
使用开发工具调试器,控制台中的日志如下:(4) [4, 3, empty × 2]。
arr.pop() 如果在空数组上调用,则返回 undefined,但据我了解,在这种情况下它不应该为空。
问题:发生了什么?为什么前两个元素打印正确,而其余的则不正确?
【问题讨论】:
-
您在迭代数组时从数组中删除元素。
-
数组已经有了反向方法。为什么要重新发明轮子?
-
return arr[ arr.length - 1 - i ];应该做的工作 -
@Taplar 这个问题是关于不使用这种方法的。
-
我明白了。如果这是为了学习,很酷。否则,这只是浪费时间。
标签: javascript arrays dictionary