首页 > 解决方案 > 如何订购数组中的项目?

问题描述

因此,我正在尝试创建一个函数,该函数采用数组中的第一项并在a1其末尾添加一个,以及数组的下一项。然后,第三项a2与第四项一起被添加到其中,依此类推。另外,我想多次执行此操作并使用函数参数创建多个数组orderNum。我很难找出如何做到这一点,但我猜它与1 -1 1 -1序列有关。无论如何,这是我的代码:

function orderArray (orderNum, array) {
   var orderNum_Array = [];

   for (var i = 0; i <= array.length; i++) {
      if (Math.pow(-1, i +1) < 0) {
         array[i] = orderNum_Array [i];

         orderNum_Array[i] = orderNum_Array[i].toString();

         orderNum_Array.concat("a" + i);
      }else if (Math.pow(-1, i +1) > 0) {
         array[i] = orderNum_Array [i + 2];

         orderNum_Array[i + 2] = orderNum_Array[i + 2].toString();

         orderNum_Array.concat("a" + (i + 2));
      }
   }
}

任何和所有的帮助都将不胜感激。提前致谢!

标签: javascriptarraysloopssorting

解决方案


您的代码无法正常工作,因为您超出了数组范围,很可能是由orderNum_Array[i + 2].

但是您可以使用Array.map()以更简单的方式执行此操作。

function orderArray(array) {
   var num = 0;
   var orderNum_Array = array.map((item, index) => {
     if (index % 2 == 0) {
       num++;
     }
     return item + "a" + num;
   });
   
   return orderNum_Array;
}

console.log(orderArray([1,2,3,4,5,6]));


推荐阅读