问题描述
数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">var y= '110001'.split("").reverse();
var sum = 0;
for (var i = 0; i < y.length; i++) {
sum += (y[i] * Math.pow(2, i));
}
console.log(sum);
推荐答案
这样做最简单
数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">console.log(Array.from('110001').reduce((prev, cur) => prev << 1 | cur));
<<
是左位移运算符,这里基本上是乘以2。
Array.from
(如果有)比split
更可取。在这种情况下,这并不重要,但split
将失败,并显示等代理项对字符,而Array.from
将正确处理它们。这也可以写为[...'110001']
,结果是相同的。
当然,您也可以只说
parseInt('110001', 2)