Problem
We are required to write a JavaScript function that takes in an array of numbers. Our function should sort the numbers according to decreasing number of 1s present in the binary representation of those numbers and return the new array.
Example
Following is the code −
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));
Output
[ 5, 78, 11, 128, 124, 68, 6 ]