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

Sắp xếp theo số 1 trong biểu diễn nhị phân bằng JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng số. Hàm của chúng ta sẽ sắp xếp các số theo số lượng 1 giảm dần có trong biểu diễn nhị phân của các số đó và trả về mảng mới.

Ví dụ

Sau đây là mã -

const arr = [5, 78, 11, 128, 124, 68, 6];
const countOnes = (str = '') => {
   let count = 0;
   for(let i = 0; i < str.length; i++){
      const el = str[i];
      if(el === '1'){
         count++;
      };
   };
   return count;
};
const sortByHighBit = (arr = []) => {
   arr.sort((a, b) => countOnes(b) - countOnes(a));
   return arr;
};
console.log(sortByHighBit(arr));

Đầu ra

[ 5, 78, 11, 128, 124, 68, 6 ]