美文网首页
二进制数组转换为十进制-Array.reduce()&p

二进制数组转换为十进制-Array.reduce()&p

作者: 林键燃 | 来源:发表于2018-10-13 20:08 被阅读86次

    描述

    [1,0,1,0] => 10
    [0,1,0,1] => 5

    实例1

    const binaryArrayToNumber = arr => {
        return parseInt(Number(arr.join('')),2);
    }
    

    实例2

    const binaryArrayToNumber = arr => {
        return arr.reduce((accumulator, val) => accumulator << 1 | b);
    }
    

    Array,prototype.reduce()

    • 描述:reduce() 方法对累计器和数组中的每个元素(从左到右)应用一个函数,将其简化为单个值。
    • 语法: Array.reduce(callback[, initalValue])
    • 参数 - callback
      1. accumulator:累计器累计回调的返回值; 它是上一次调用回调时返回的累积值,或initialValue(见于下方)。
      2. currentValue: 数组中正在处理的元素。
      3. currentIndex: 数组中正在处理的当前元素的索引。 如果提供了initialValue,则索引号为0,否则索引为1。
      4. arr: 调用reduce()的数组
    • 参数 - initialValue
      1. 作为第一次调用 callback函数时的第一个参数的值。 如果没有提供初始值,则将使用数组中的第一个元素。 在没有初始值的空数组上调用 reduce 将报错。
    • 返回值:
      函数累计处理的结果
    • 实例:
    const initialValue = 0;
    const arr = [{x:1},{x:2},{x:3}]
    const callback = function(accumulator, currentValue) {
        return accumulator + currentValue.x;
    }
    const sum = arr.reduce(callback, initialValue);
    console.log(sum) // 6
    

    相关文章

      网友评论

          本文标题:二进制数组转换为十进制-Array.reduce()&p

          本文链接:https://www.haomeiwen.com/subject/rchaaftx.html