문제
우리는 유일한 인수로 숫자 배열 arr을 취하는 JavaScript 함수를 작성해야 합니다. 우리 함수는 정렬 후 요소가 다음 패턴을 따라야 하는 방식으로 이 배열을 정렬해야 합니다 -
arr[0] < arr[1] > arr[2] < arr[3]....
예를 들어, 함수에 대한 입력이 -
인 경우const arr = [1, 5, 1, 1, 6, 4];
그러면 출력은 다음과 같이 될 수 있습니다(하나 이상의 가능한 답도 있을 수 있음) -
const output = [2, 3, 1, 3, 1, 2];
예시
이에 대한 코드는 -
const arr = [1, 5, 1, 1, 6, 4]; const unevenSort = (arr = []) => { arr.sort((a, b) => a - b); let mid = Math.floor(arr.length / 2); if(arr.length % 2 === 1){ mid += 1; }; let even = arr.slice(0, mid); let odd = arr.slice(mid); for(let i = 0; i < arr.length; i++){ if(i % 2 === 0){ arr[i] = even.pop(); }else{ arr[i] = odd.pop(); }; }; }; unevenSort(arr); console.log(arr);
출력
콘솔의 출력은 다음과 같습니다. -
[ 1, 6, 1, 5, 1, 4 ]