var sortByBits = function(arr) {
const sortedArr = arr.sort((a, b) => (numBits(a) - numBits(b)) || ( a - b));
return sortedArr;
};
const memo = { 0 : 0 };
function numBits(num) {
if(memo[num] !== undefined) return memo[num];
return memo[num] = (num & 1) + numBits(num >> 1);
}