ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของจำนวนเต็มไม่เป็นลบที่ไม่ซ้ำกัน ฟังก์ชันของเราควรคืนค่าจำนวนเต็ม 32 บิต โดยที่จำนวนเต็มในการแทนค่าไบนารีมี 1 ที่ดัชนีเท่านั้น (นับจากด้านขวา) ซึ่งอยู่ในลำดับ
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
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)); ผลลัพธ์
ต่อไปนี้เป็นเอาต์พุตคอนโซล -
14