转换的二进制数字的阵列,以在JavaScript中对应的整

比方说,我们有一个包含0和1的数字数组 -

const arr = [0, 1, 0, 1];

我们必须写一个Array函数,toBinary(),用于返回它用于与数组相应的二进制。

例如-如果数组是-

const arr = [1, 0, 1, 1];

然后,输出应为11,因为二进制1011的十进制表示是11。

因此,让我们为该函数编写代码。

方法1:使用库方法

在JavaScript中,存在一个方法parseInt函数(),即发生在两个参数第一个是一个字符串和第二一个数字,表示一个特定的基,如10十进制的基础上,2为二进制。本函数解析字符串参数,并返回指定基数(基)的整数。

在我们的例子中,要将二进制数组转换为十进制,我们可以使用parseInt()函数,如下所示:

const arr = [1, 0, 1, 1];
const parseArray = arr => {
   const binaryString = arr.join("");
   return parseInt(binaryString, 2);
};
console.log(parseArray(arr));

方法2:减少 数组

在该方法中,我们迭代二进制数组上方并构建基于对应的二进制数的十进制。我们将使用左移位运算符(<<)的累计值转移到一个离开每次位和返回位或(|)移位累计值和电流值。

这个使用位运算符的代码 -

示例

const arr = [1, 0, 1, 1];
const parseArray = arr => {
   return arr.reduce((acc, val) => {
      return (acc << 1) | val;
   });
};
console.log(parseArray(arr));

输出结果

控制台中的输出将为-

11