3 javascript arrays algorithm array-algorithms
我正在尝试解决以下练习:
不使用反向方法反转数组,不使用第二个数组,也不重复任何值.
我已经考虑过将数组作为一个对象,然后从最后到开始更新数组,但我想你也可以更新它.
尝试过简单的事情:
function reverseArray(array) {
for (var i = 0; i < array.length; i++) {
// var elem = array.shift();
var elem = array.shift()
array.push(elem)
}
return array
}
array = ['a', 'b','c','d','e'];
reverseArray(array);Run Code Online (Sandbox Code Playgroud)
但这并没有真正改变它.有关如何做到这一点的任何建议或解释?
使用ES6语法,您不需要将值复制到临时变量中(这是最后一个要求是什么?).
function reverse(arr) {
for(let i = 0, j = arr.length-1; i < j; i++, j--)
[arr[i], arr[j]] = [arr[j], arr[i]];
}
const arr = ['a','b','c','d','e'];
reverse(arr);
console.log(arr);Run Code Online (Sandbox Code Playgroud)
有人可能会争辩说,数组是在这里创建的(如果引擎没有优化它),就像splice创建一个数组(作为其返回值)一样.
| 归档时间: |
|
| 查看次数: |
2769 次 |
| 最近记录: |