搜尋

首頁  >  問答  >  主體

javascript - js 数组对应相加

1

2

3

<code>var arr1 = [1,2],

    arr2 = [3,4];

</code>

我希望得到一个新的数组是 arr = [4,5] 也就是 arr[0] = arr1[0]+arr2[0] 以此类推。我现在只能想到循环的方式,求其他方法。

PHPzPHPz2904 天前407

全部回覆(1)我來回復

  • PHP中文网

    PHP中文网2017-04-10 14:54:30

    既然不想用循环,那递归也是方法之一,也可用 map()

    1

    2

    3

    4

    5

    6

    7

    8

    9

    <code>javascript</code><code>var a = [1,2,3]

    var b = [5,7,9]

     

    var c = a.map(function(v, i) {

        return v + b[i]

    })

     

    // [3,9,12]

    </code>

    既然有了这个思路,试试 forEach() 怎么样

    1

    2

    3

    4

    5

    6

    7

    8

    9

    <code>javascript</code><code>var a = [1,2,3]

    var b = [5,7,9]

    var c = []

    a.forEach(function(v, i) {

        c.push(v + b[i])

    })

     

    // [3,9,12]

    </code>

    然后,封装成一个函数,顺便处理数据长度不一致的情况

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    <code>javascript</code><code>function merge(a, b) {

        if (b.length > a.length) {

            var t = a

            a = b

            b = t

        }

     

        return a.map(function(v, i) {

            return v + (b[i] || 0)

        })

    }

     

    var a = [1,2,3]

    var b = [5,7,9,10]

    var c = merge(a, b)

    // [3,9,12,10]

    </code>

    回覆
    0
  • 取消回覆