javascript - 将数组排序为第 1 分钟、第 1 大、第 2 小、第 2 大等

标签 javascript arrays sorting

写一个JS程序,返回一个数组,第一个元素是第一个最小值,第二个元素是第一个最大值,以此类推。

这个程序包含一个接受一个参数的函数:一个数组。该函数根据要求返回数组。

示例输入:array=[2,4,7,1,3,8,9]。预期输出:[1,9,2,8,3,7,4]

const arrsort=(arr)=>{
   return arr.sort(function(a, b){return a - b});
}
const test=(arr)=>{
  arr=arrsort(arr);
  var arr2=[];
  var j=0;
  var k=arr.length-1;
  for (var i=0;i<arr.length-1;i++){
    if(i%2===0){
      arr2.push(arr[j]);
      j++;
    }
   else{
      arr2.push(arr[k]);
      k--;
   }
  }
 return arr2;
}

最佳答案

您可以移动并弹出已排序数组副本的值,而不是使用两个索引。

var array = [2, 4, 7, 1, 3, 8, 9]

const arrsort = arr => arr.sort((a, b) => a - b);

const test = (arr) => {
    var copy = arrsort(arr.slice()),
        result = [],
        fn = 'pop';
    while (copy.length) {
        fn = { pop: 'shift', shift: 'pop' }[fn];
        result.push(copy[fn]());
    }
    return result;
}

console.log(test(array));

关于javascript - 将数组排序为第 1 分钟、第 1 大、第 2 小、第 2 大等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56619584/

相关文章:

c++ - 将字符串分配给指针数组

javascript - 数组值在 jquery 可排序中无法正确获取

java - 对混合列表中仅一类的对象进行排序

javascript - 如何从一个数字生成反菱形?

javascript检查字符串是否只包含html

javascript - AngularJS 中复制表失败

c# - 如何通过继承对类进行排序?

javascript - 如何开发Chrome扩展来定期检查网站?

c++ - 如何将二维数组传递给函数以及如何调用它

c - 无法释放动态分配的二维数组