Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

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


Vấn đề

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

Ví dụ

Dưới đâ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));

Kết quả

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