JS定义一个数组,存入1 2 3 4 5 按照要求交换索引对应的元素

存入1 2 3 4 5 按照要求交换索引对应的元素
交换前 1 2 3 4 5
交换后 5 4 3 2 1

在实际开发中使用reverse函数就行,如果要手写的话,如下所示:

let arr = [1, 2, 3, 4, 5];
for (let i = 0; i < arr.length / 2; i++) {
    let temp = arr[i]; // 交换数组元素
    arr[i] = arr[arr.length - 1 - i];
    arr[arr.length - 1 - i] = temp;
}
console.log(arr); // 输出倒序后的数组

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
可以使用 JavaScript 的数组方法 reverse() 来交换索引对应的元素。reverse() 方法会将数组中的元素顺序颠倒过来,即最后一个元素变成第一个,倒数第二个变成第二个,以此类推。

但是,由于题目要求的是按照要求交换后的数组中,索引为 0 的元素是 5,索引为 1 的元素是 4,索引为 2 的元素是 3,索引为 3 的元素是 2,索引为 4 的元素是 1,因此在使用 reverse() 方法之前,需要先将数组中的元素顺序调整为 5 4 3 2 1。可以使用数组方法 sort() 来实现。

代码如下:

// 定义一个数组
let arr = [1, 2, 3, 4, 5];
 
// 将数组中的元素顺序调整为 5 4 3 2 1
arr.sort((a, b) => b - a);
 
// 输出交换前的数组
console.log("交换前:" + arr.join(" "));
 
// 使用 reverse() 方法交换索引对应的元素
arr.reverse();
 
// 输出交换后的数组
console.log("交换后:" + arr.join(" "));

输出结果为:

交换前:1 2 3 4 5
交换后:5 4 3 2 1

如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7524470
  • 除此之外, 这篇博客: js数据结构与算法(栈-队列-单/双向链表-集合-字典-哈希表-二叉树-红黑树-图-常见排序算法)中的 案例:依次插入10 9 8 7 6 5 4 3 2 1 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 结合上方的情况和规则进行对应插入变换着色
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这样就完成了红黑树,主要是记住规则和五种情况变换,达到尽可能的时间复杂度O(logN)而不是非平衡二叉树的O(N)
    end~

  • 以下回答由chatgpt基于相关博客总结生成:

    首先定义一个数组,赋值为[1, 2, 3, 4, 5],然后设置双指针i和j,i指向该数组的起始位置,j指向该数组的末尾位置,通过循环交换i和j对应位置上的元素,直到i和j相遇。具体步骤如下所示:

    let arr = [1, 2, 3, 4, 5]; //定义数组
    let i = 0, j = arr.length - 1; //设置双指针i和j
    
    while(i < j){ //循环
        let temp = arr[i]; //交换元素
        arr[i] = arr[j];
        arr[j] = temp;
        i++;
        j--;
    }
    
    console.log(arr); //输出[5, 4, 3, 2, 1]