Функция binaryArrayToNumber
Ответ:
const binaryArrayToNumber = (arr) => {
return arr.reduce((acc, cur, i) => {
return acc + cur * Math.pow(2, arr.length - i - 1);
}, 0);
};
Объяснение:
В ответе используется стандартный алгоритм преобразования двоичного числа в десятичное. В методе reduce мы постепенно умножаем каждое число на 2 в степени длинна массива минус 1 и минус индекс элемента (получается такая обратная индексация) и складываем с остальными.
Код для проверки:
const binaryArrayToNumber = (arr) => {
return arr.reduce((acc, cur, i) => {
return acc + cur * Math.pow(2, arr.length - i - 1);
}, 0);
};
console.log(binaryArrayToNumber([0, 0, 0, 1])); // 1
console.log(binaryArrayToNumber([0, 0, 1, 0])); // 2
console.log(binaryArrayToNumber([1, 1, 1, 1])); // 15
console.log(binaryArrayToNumber([0, 1, 1, 0])); // 6