javascript两个数组合并,不是连接,而是相加

javascript两个数组合并,不是连接,而是相加
a=[1,2,3,4,5]
b=[2,4,3,2,1]
算出来
3,6,6,6,6

10个回答

 a=[1,2,3,4,5]
b=[2,4,3,2,1]
var rst=[];
a.forEach(function(v,index){rst.push(v+b[index])})
console.log(rst)

a.concat(b)试试。。

arr3 = [1,2,3];  
arr4 = [1,2,3];  
let newarr = arr3.map(function(item, index) {
    return item + arr4[index]
}) 
console.log(newarr) 

for(int i=0;i<a.length;i++)
{
c[i]=a[i]+b[i];
}

weixin_38652136
邪恶八进制 没有考虑长度不一致的问题
接近 2 年之前 回复

数组用map遍历相加,简洁明了

a.map((val,index)=>(val+b[index]));

function sum(a,b){
var c=[];
if(Array.isArray(a)&&Array.isArray(b){

for(var i=0;i<a.length;i++)
for(var j=0;j<b.length;j++){
if(a.length!=b.length){
window.alert("两数组长度不同")
}else{
if (i==j){
c[i]=a[i]+b[j]
}else{
continue
}
}
}
return c
}
}
大致这样,不保证正确,哈哈

function(a,b){
var c = [];
for (var i = 0; i < a.length; i++) {
c[i] = a[i] + b[i];
}
return c;
}

a=[1,2,3,4,5]
b=[2,4,3,2,1]
c=a.map((v,i)=>v+b[i]);
console.log(c);

var a = [1,2,3,4];
var b = [1,2,3,4,5,6,7,8,9];
var arr_= [];
if(a.length==b.length){
for (var i=0;i<a.length;i++){
arr_.push(parseFloat(a[i])+parseFloat(b[i]))
}
console.log(arr_)
}else if(a.length<b.length){
for (var i=0;i<a.length;i++){
arr_.push(parseFloat(a[i])+parseFloat(b[i]))
}
for(var j=a.length;j<b.length;j++){
arr_.push(b[j])
}
console.log(arr_)
}else{
for (var i=0;i<b.length;i++){
arr_.push(parseFloat(a[i])+parseFloat(b[i]))
}
for(var j=b.length;j<a.length;j++){
arr_.push(a[j])
}
console.log(arr_)

    }
    //输出[2,4,6,8,5,6,7,8,9]

两个数组对应位相加,如果和>9进一位。例如

int[] a={1,2,3,4,5};

int[] b={4,5,6,7,8};

则结果:int[] c={5,7,9,1,4,1}

下面直接贴代码:

 public class CopyArray {
    public int[] add(int[] a, int[] b) {
        if (a.length == b.length) {
            for(int i=0;i<a.length-1;i++){
                a[i]=a[i]+b[i];
                if(a[i]>9){
                    a[i]=a[i]%10;
                    a[i+1]=a[i+1]+1;
                }
            }
            a[a.length-1]=a[a.length-1]+b[b.length-1];
            if(a[a.length-1]>9){
                a[a.length-1]=a[a.length-1]%10;
                int[] c=new int[a.length+1];
                for(int i=0;i<a.length;i++){
                    c[i]=a[i];
                }
                c[c.length-1]=1;
                return c;
            }else{
                return a;
            }


        } else {
            int[] bigger = a.length > b.length ? a : b;
            int[] smaller = a.length < b.length ? a : b;
            int temp = bigger.length - smaller.length;
            for(int i=0;i<=smaller.length-1;i++){
                bigger[i] = smaller[i] + bigger[i];
                if (bigger[i] > 9) {
                    bigger[i] = bigger[i] % 10;
                    bigger[i + 1] = bigger[i + 1] + 1;
                }
            }
            for (int i = smaller.length; i < bigger.length-1; i++) {
                if (bigger[i] > 9) {
                    bigger[i] = bigger[i] % 10;
                    bigger[i - 1] = bigger[i - 1] + 1;
                }
            }
            if (bigger[bigger.length-1] > 9) {
                bigger[bigger.length-1] = bigger[bigger.length-1] % 10;
                int[] c = new int[bigger.length + 1];
                for (int i = 0; i < bigger.length; i++) {
                    c[i + 1] = bigger[i];
                }
                c[bigger.length-1] = 1;
                return c;
            } else {
                return bigger;
            }
        }
    }
    public static void main(String[] args){
         int[] a={1,3,6,8,4,5,7};
         int[] b={2,4,6,7,8};
         CopyArray copy=new CopyArray();
         int[] c=copy.add(a,b);
         for(int i=0;i<c.length;i++){
             System.out.println(c[i]);
         }
    }
}
dabocaiqq
穷在人世中少你左右我想我连什么价值也没有 你这个不行。不要复制粘贴的
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐