【发布时间】:2016-12-29 22:03:21
【问题描述】:
我正在完成 Marijn Haverbeke 的 Eloquent JavaScript 练习,并正在解决以下问题:
“编写一个函数 reverseArrayInPlace 来修改作为参数给出的数组以反转其元素。不要使用标准的
reverse方法”
给出的解决方案如下:
function reverseArrayInPlace(array) {
for (var i = 0; i < Math.floor(array.length / 2); i++) {
var old = array[i];
array[i] = array[array.length - 1 - i];
array[array.length - 1 - i] = old;
}
return array;
}
给出的测试用例如下:
var arrayValue = [1, 2, 3, 4, 5];
reverseArrayInPlace(arrayValue);
console.log(arrayValue);
// → [5, 4, 3, 2, 1]
我知道它使用数组的中点作为旋转点,但是有人可以给我一步一步的解释吗?
【问题讨论】:
-
您只需要知道 JS 中的
Math.floor()、theforloop 和array.length是什么,其余的就像伪代码一样。顺便说一句,您始终可以使用内置数组方法Array.prototype.reverse()反转数组。
标签: javascript arrays methods