【问题标题】:How to explain reversing an array in JavaScript using for loops如何解释使用 for 循环在 JavaScript 中反转数组
【发布时间】:2022-01-11 21:12:04
【问题描述】:

我需要帮助来了解此代码的工作原理。 任务: 在不使用函数的情况下,您必须反转列表中的所有项目。也就是说,来回重做。

示例: 输入:[-89,71,11,0,4,6] 输出:[6,4,0,11,71,-89]

我找到了这个例子,但我需要解释它是如何工作的,并且能够解释代码的各个方面:

let arr = [1, 2, 3, 4, 5, 6, 7];
let n = arr.length-1;

for(let i=0; i<=n/2; i++) {
  let temp = arr[i];
  arr[i] = arr[n-i];
  arr[n-i] = temp;
}
console.log(arr);

【问题讨论】:

  • 在调试器中单步调试代码并检查结果。
  • 是的,如果您尝试自己完成这项工作,并针对您考虑过但不太了解的流程提出实际的具体问题,那就更好了

标签: javascript arrays for-loop


【解决方案1】:

你可以使用更简单的:

const arr = [1, 2, 3, 4, 5]
const reversedArr = []

for (let i = arr.length - 1; i >= 0; i--) {
  reversedArr.push(arr[i])
}

console.log(reversedArr)

解释只是,遍历原始数组中的每一项,但从最后一项开始(此处为 arr.length = 5)并将它们中的每一项推入一个新数组。

【讨论】:

  • 看起来 OP 想要原地反转数组
【解决方案2】:

代码只是做一个反向功能。

let temp = arr[i];arr[i] = arr[n-i];arr[n-i] = temp; 正在尝试在 i 项和 i 项之间从最后一个元素切换序列。

在您的代码中,n 是最后一个元素。

例如,i =0,temp 将等于 arr 中的第一个元素,即 1,arr[n-i] 将是最后一个 i 元素(最后一个元素),即 7。

然后,代码将arr[i]arr 中的第一个元素)设置为最后一个元素值arr[n-i],即 7。

最后,代码将arr[n-1]arr 中的最后一个元素)的值分配给temp,即 1 和arr 中的第一个元素。

所以你成功地反转了第一个和最后一个元素,并且当 i=1,2 时循环继续做同样的事情......

let arr = [1, 2, 3, 4, 5, 6, 7];
let n = arr.length-1;

for(let i=0; i<=n/2; i++) {
  let temp = arr[i];
  arr[i] = arr[n-i];
  arr[n-i] = temp;
}
console.log(arr);

【讨论】:

    猜你喜欢
    • 2020-12-13
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 2017-11-20
    • 2021-05-02
    • 2021-04-24
    • 2021-10-28
    • 2013-08-31
    相关资源
    最近更新 更多