【问题标题】:What is another way to reverse an array without modifying the original and using .reverse()? [duplicate]在不修改原始数组和使用 .reverse() 的情况下反转数组的另一种方法是什么? [复制]
【发布时间】:2020-08-01 21:01:10
【问题描述】:

我一直在参加一些 JavaScript 挑战,并在不使用扩展运算符修改原始的情况下解决了反向数组挑战。我喜欢以不同的方式解决问题,所以我很想从你那里找到答案。你会以什么其他方式解决它,或者你会解决它(不包括地图等高阶函数)?

 var newArray = [1,2,3,4,5,6];

 const reverseArray = () => {
       let arr = [...newArray];

   for(let i = 0; i <= arr.length; i++){
         arr.pop(i)
         arr.unshift(i);
   }
   return arr
 }


console.log(reverseArray())

【问题讨论】:

    标签: javascript arrays for-loop javascript-objects reverse


    【解决方案1】:

    你可以使用reverse();

    var newArray = [1, 2, 3, 4, 5, 6];
    
    var reverse = newArray.reverse();
    console.log(reverse)

    使用带增量的for循环设置索引,然后递减值并推入数组

    var myArray = [1, 2, 3, 4, 5, 6, 7, 8];
    
    function reverseArray(myArray) { // create a function and pass our array into it
      var newArray = []; // define an empty array
      for (var i = myArray.length - 1; i >= 0; i--) { // set for loop, declare a decrement for index as i - 1 to adjust for index, if greater than or equal to 0, decrement i
        newArray.push(myArray[i]); // push the value into newArray
      }
      return newArray; // return newArray
    }
    
    console.log(reverseArray(myArray));

    通过函数使用 slice() reverse() 和 map() 一起索引和值。

    var myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    var div = document.getElementById('div')
    
    function sliceMap() {
      reverseArray = myArray.slice(0).reverse().map(
        function(value) {
          return value;
        }
      );
    
      div.innerHTML =  reverseArray;
    }
    
    console.log(sliceMap())
    &lt;div id="div"&gt;&lt;/div&gt;

    映射值,然后使用 unshift 反转它们。

    var myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    
    var reverseArray = [];
    
    myArray.map((value) => {
      reverseArray.unshift(value);
    });
    
    console.log(reverseArray)

    【讨论】:

    • 我不好,我的意思是在不使用 .reverse() 的情况下添加标题,呵呵,但这是一个很好的选择。如果你要像我做的那样做,你会做哪些小的改动来改进它。
    • 我使用for循环压入空数组,然后在循环中递减并使用i的值作为索引。
    • 太好了,没想到
    • 当好的 ole one 班轮可以解决问题时,为什么还要重新发明轮子?!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 2018-01-12
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    相关资源
    最近更新 更多