返回一个十进制数,其二进制形式中仅在 JavaScript 数组指定的索引处存在 1


问题

我们需要编写一个 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

更新于: 20-4-2021

71 次浏览

开启您的 职业之旅

完成课程获得认证

开始
广告