第一种方法
const hammingWeight = (n) => {
n = n.toString(2);
return n.split('').filter(item => item === '1').length;
};
第二种方法
const hammingWeight = (n) => {
n = n.toString(2);
return n.split('').reduce((prev, cur) => {
if(cur === '1') {
return ++prev;
}
return prev;
}, 0)
};
第三种方法
const hammingWeight = (n) => {
let res = 0;
while (n) {
n &= n - 1;
res++;
}
return res;
};
其实,前两种方法并没有什么区别~
来源