Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ส่งคืนทศนิยมที่มี 1s ในรูปแบบไบนารีเฉพาะที่ดัชนีที่ระบุโดยอาร์เรย์ใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน 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