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);
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);
チェック
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);
が、それはそれが何を最も簡単でしょう
役に立てば幸いこのスニペット
console.log(Array.from('110001').reduce((prev, cur) => prev << 1 | cur));
<<
ここで、本質的に2で乗算左ビットシフト演算子です。
Array.from
(利用可能な場合)は、split
よりも好ましいです。この場合は問題ありませんが、split
などのサロゲートペア文字では失敗し、Array.from
は正しく処理されます。これは[...'110001']
と書くこともできますが、これは同じことになります。もちろん
、あなたはまた、単に言うことができる
parseInt('110001', 2)