a może coś takiego?
const countBits = function( n ) {
const bit = n.toString( 2 );
bitAsArray = bit.split( '' );
return bitAsArray.reduce( ( a,b ) => {
return +a + +b;
}, 0 );
}
( 15 ).toString( 2 ); //"1111"
countBits( 15 ); //4
( 20 ).toString( 2 ); //"10100"
countBits( 20 ); //2
Pomysł jest taki, aby liczbę przekonwertować do postaci binarnej ale jako string, następnie stringa rozdzielić na tablicę i zsumować wszystkie jej elementy. Pytanie jak duże liczby masz bo przy bardzo dużych to nie będzie wydajne rozwiązanie...