Computer >> Máy Tính >  >> Lập trình >> Javascript

Sắp xếp thay thế một mảng trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript lấy mảng Numbers làm đối số đầu tiên và duy nhất.

Công việc của hàm của chúng ta là sắp xếp các phần tử có trong mảng theo kiểu thay thế.

Thay vào đó, chúng tôi muốn nói như sau -

Giả sử chúng ta có một mảng arr chỉ chứa bốn phần tử vào lúc này. Khi đó, hàm của chúng ta sẽ xáo trộn các phần tử của mảng sao cho -

arr[0] < arr[1] > arr[2] < arr[3]

Lưu ý rằng có thể có nhiều giải pháp khả thi cho một mảng nhất định, chúng tôi chỉ cần trả về bất kỳ giải pháp khả thi nào.

Ví dụ -

Nếu mảng đầu vào là -

const arr = [1, 2, 3, 4, 5, 6];

Sau đó, một đầu ra khả thi có thể là -

const output = [ 3, 6, 2, 5, 1, 4 ];

Ví dụ

Sau đây là mã -

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);

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

[ 3, 6, 2, 5, 1, 4 ]