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ố nguyên không âm duy nhất. Hàm phải trả về một số nguyên 32-bit sao cho số nguyên đó, trong biểu diễn nhị phân, có bit 1 chỉ tại các chỉ số (đếm từ phải) có trong mảng.
Ví dụ
Dưới đây là mã:
const arr = [1, 2, 0, 4];
const buildDecimal = (arr = []) => {
const bitArr = Array(31).fill(0);
let res = 0;
arr.forEach(el => {
bitArr.splice((31 - el), 1, 1);
})
bitArr.forEach((bit, index) => {
res += (2 * (31-index) * bit);
});
return res;
};
console.log(buildDecimal(arr));
Kết quả
Kết quả console:
14