比方说,我们有一个包含0和1的数字数组 -
const arr = [0, 1, 0, 1];
我们必须写一个Array函数,toBinary(),用于返回它用于与数组相应的二进制。
例如-如果数组是-
const arr = [1, 0, 1, 1];
然后,输出应为11,因为二进制1011的十进制表示是11。
因此,让我们为该函数编写代码。
在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));
在该方法中,我们迭代二进制数组上方并构建基于对应的二进制数的十进制。我们将使用左移位运算符(<<)的累计值转移到一个离开每次位和返回位或(|)移位累计值和电流值。
这个使用位运算符的代码 -
const arr = [1, 0, 1, 1]; const parseArray = arr => { return arr.reduce((acc, val) => { return (acc << 1) | val; }); }; console.log(parseArray(arr));
输出结果
控制台中的输出将为-
11