如何使用REDUTE函数执行此操作?

人气:713 发布:2022-10-16 标签: javascript reduce

问题描述

数据-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)

145