比如var a=[1,2,3];
b=[4,5,6];
如何能得到[5,7,9]这样的数组。
嘛。。其实我的情况是
a=[[1,1],[2,2]];
b=[[3,3],[4,4]];
想得到[[4,4],[6,6]]
求大神帮忙!!
比如var a=[1,2,3];
b=[4,5,6];
如何能得到[5,7,9]这样的数组。
嘛。。其实我的情况是
a=[[1,1],[2,2]];
b=[[3,3],[4,4]];
想得到[[4,4],[6,6]]
求大神帮忙!!
underscorejs
// a=[[1,1],[2,2]];
// b=[[3,3],[4,4]];
_.map(_.zip(a, b), function(arr){ return _.map(_.zip(arr[0], arr[1]), function(arr){return arr[0] + arr[1];}); });
//[[4,4],[6,6]]
用 map 函数就行了
function plus(a, b) {
return a.map(function(e, i){
return e.map(function(e2, j) {
return e2 + b[i][j];
});
});
}
针对题主的情况,“数组的数组”相加:
function arrAdd(arr1,arr2){
if(arr1.length != arr2.length) {
alert('数组长度不相等');
return;
}
var arrSum = arr1;
for(var i=0,len=arr1.length;i<len;i++){
for(var j=0;j<arr1[i].length;j++){
if(arr1[i].length != arr2[i].length){
alert('子数组长度不相等');
return;
} else {
arrSum[i][j] = arr1[i][j] + arr2[i][j];
}
}
}
return arrSum;
}
因为js不支持真正的多维数组,所以不能像下面这样直接初始化:
var arrSum = [];//声明一个空数组
...
arrSum[i][j] = arr1[i][j] + arr2[i][j];//Uncaught TypeError: Cannot set property '0' of undefined
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答895 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决