JavaScript 数组的交替排序
我们需要编写一个 JavaScript 函数,该函数采用一个数字数组作为第一个且唯一的参数。
我们函数的任务是以交替的方式对数组中存在的元素进行排序。
交替是指以下内容:
假设我们有一个数组 arr,目前只包含四个元素。然后,我们的函数应该对数组中的元素进行改组,如下所示:
arr[0] < arr[1] > arr[2] < arr[3]
请注意,对于给定的数组,可能有多种可能的解决方案,我们只需要返回任何可能的解决方案即可。
例如:
如果输入数组为:
const arr = [1, 2, 3, 4, 5, 6];
那么其一种可能的输出可能是:
const output = [ 3, 6, 2, 5, 1, 4 ];
示例
以下为代码:
const arr = [1, 2, 3, 4, 5, 6];
const alternateSort = (arr = []) => {
arr.sort((a, b) => a - b);
const N = arr.length;
let mid = Math.floor(N/2);
if(N % 2 !== 0){
mid++;
};
const small = arr.splice(0, mid);
const big = arr.splice(0,arr.length);
for(let i = 0; i < N; i++){
if(i % 2 === 0){
arr[i] = small.pop()
}else{
arr[i] = big.pop()
};
};
};
alternateSort(arr);
console.log(arr);输出
以下为控制台输出:
[ 3, 6, 2, 5, 1, 4 ]
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP