var arr1 = [1,2],
arr2 = [3,4];
我希望得到一个新的数组是 arr = [4,5]
也就是 arr[0] = arr1[0]+arr2[0]
以此类推。我现在只能想到循环的方式,求其他方法。
PHP中文网2017-04-10 14:54:30
既然不想用循环,那递归也是方法之一,也可用 map()
javascript
var a = [1,2,3] var b = [5,7,9] var c = a.map(function(v, i) { return v + b[i] }) // [3,9,12]
既然有了这个思路,试试 forEach()
怎么样
javascript
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]
然后,封装成一个函数,顺便处理数据长度不一致的情况
javascript
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]