Javascript 编写自己的反向数组函数而不定义新的空数组

Javascript 编写自己的反向数组函数而不定义新的空数组,javascript,Javascript,我正在尝试编写一个函数,该函数在不定义新的空数组的情况下反转数组的元素 let arrayValue = [1, 2, 3, 4, 5] function remove(array, index) { return array.slice(0, index).concat(array.slice(index + 1)); } function reverseArrayInPlace(array) { for (i = array.length - 2; i >= 0; i--) {

我正在尝试编写一个函数,该函数在不定义新的空数组的情况下反转数组的元素

let arrayValue = [1, 2, 3, 4, 5]

function remove(array, index) {
return array.slice(0, index).concat(array.slice(index + 1));
}

function reverseArrayInPlace(array) {
  for (i = array.length - 2; i >= 0; i--) {
    let removedCharacter = array[i];
    array = array.concat(removedCharacter);
    array = remove(array, i);
  } 
    return array;
}
当我console.log(reversearlayinplace(arrayValue))时,我得到的是[5,4,3,2,1]的相反顺序

但是,当我尝试只执行reverseArrayInPlace(arrayValue)和console.log(arrayValue)时,我得到的是[1,2,3,4,5],这是在开始时定义的值

是否有一种方法可以更新函数中的arrayValue绑定,然后当它位于函数外部的console.log时,它会显示相反的顺序?

//显示偶数和奇数长度的情况
// show cases of even and odd lengths
const x = [1,2,3,4];
const y = [1,2,3,4,5];

for (let i = 0; i < x.length / 2; i++) {
  const tmp = x[i];

  x[i] = x[x.length - 1 - i];
  x[x.length - 1 - i] = tmp;
}

for (let i = 0; i < y.length / 2; i++) {
  const tmp = y[i];

  y[i] = y[y.length - 1 - i];
  y[y.length - 1 - i] = tmp;
}

console.log(x);
// [4, 3, 2, 1]

console.log(y);
// [5, 4, 3, 2, 1]
常数x=[1,2,3,4]; 常数y=[1,2,3,4,5]; for(设i=0;i
函数反转arrayinplace(数组){
for(设i=0;i
数组和方法的MDN文档解释说,这些方法返回新数组,而不是修改现有数组。如果您正在寻找用于修改数组的内置数组方法,将完成此工作。但是,使用
splice
实现这一点要比像其他答案所建议的那样只使用
for
循环复杂得多。

您可以在数组的中点对称交换值,如

const arr=[0,1,2,3,4];
常数长度=阵列长度;
for(设i=0;i控制台日志(arr)您的
删除
功能根本不到位。就地解决方案不会重新分配
数组
变量,也不需要返回值。就地解决方案实际上会通过交换传入数组的元素来改变数组。请尝试一下,让我们看看你的尝试。这个练习的解决方案在最后有一个return语句,所以我假设我的函数也必须返回一些东西。感谢您对就地的澄清。这是我30分钟前给出的答案。我不同意,由于变量命名,这段代码比另一个答案中的代码更加自我记录,您没有将其标记为“低质量”,这只是建议。通常情况下,只有代码的答案会在SO之前进入低质量的队列(不是我会标记为低质量或高质量)。这是我的评论,这就是为什么建议。希望你现在明白了。谢谢
function reverseArrayInPlace(array) {
 for (let i = 0; i < array.length / 2; i++) {
  const oppositeArrayIndex = array.length - (i + 1);
  const oppasiteArrayValue = array[oppositeArrayIndex];
  array[oppositeArrayIndex] = array[i];
  array[i] = oppasiteArrayValue;
 }
}