【发布时间】:2016-12-03 05:54:25
【问题描述】:
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);
【问题讨论】:
标签: javascript reduce
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);
【问题讨论】:
标签: javascript reduce
这样做是最简单的
console.log(Array.from('110001').reduce((prev, cur) => prev << 1 | cur));
<< 是左移运算符,这里基本上是乘以 2。
Array.from(如果可用)优于split。在这种情况下,这无关紧要,但split 会因代理对字符(例如?)而失败,而Array.from 会正确处理它们。这也可以写成[...'110001'],结果是一样的。
当然,你也可以直接说
parseInt('110001', 2)
【讨论】:
检查这个sn-p
var binary = '110001'.split("").reverse();
var sum = binary.reduce(function(previous, current, index) {
previous = previous + (current * Math.pow(2, index));
return previous;
}, 0);
console.log(sum);
希望对你有帮助
【讨论】: