两个数组如何对应相加 js

比如 var a=[1,2,3];b=[4,5,6];
两个数组相加如何能得到[5,7,9]这样的数组。

阅读 16.8k
7 个回答
a.map(function(item,index){
    return item+b[index]
})
有很多种方式,你也可以for循环累加,`for in`,`Array.foreach`等
你的私信问题受字数限制
只能发到这边了
var result= array.reduce(function(initObj,item,index,array){
             //根据条件进行分组
                 if(item.ab<100){
                     initObj.a100.push(item)
                 }
                 if(100<=item.ab&&item.ab<1000){
                     console.log(`满足100-1000,${item.ab}`)
                    initObj.a1000.push(item)
                 }
                 if(1000<=item.ab&&item.ab<10000){
                    initObj.a10000.push(item)
                 }
                 if(10000<=item.ab&&item.ab<100000){
                    initObj.a100000.push(item)
                 }
                 if(100000<=item.ab&&item.ab<1000000){
                    initObj.a1000000.push(item)
                 }
                 //根据分组按从小到大排序
                 
             return initObj;
         },{a10:[],a100:[],a1000:[],a10000:[],a100000:[],a1000000:[]})
         var finnalResult=[];
         for(var index in result){
             result[index].sort(function(itema,itemb){
                return itema.ab-itemb.ab
             })
             finnalResult.push(result[index].shift())
         }
         return finnalResult.splice(0,1)

var N = a.map((v,i)=>v + b[i])

  1. 如果要使用一个var/let定义多个变量,请尤其注意不要把逗号写成分号。
  2. 程序很简单

    let a=[1,2,3], b=[4,5,6];
    let s = a.map(function(v, i) {
        return v + b[i];
    });
    console.log(s);

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

循环相加吧;

var a=[1,2,3];
var b=[4,5,6];
var sumArray = [];

const bLength = b.length;
const aLength = a.length;


if (aLength < bLength) {
    [a, b] = [b, a]
}

for (let index in a) {
    if (index < bLength) {
        sumArray[index] = a[index] + b[index]
    } else {
        sumArray[index] = a[index]
    }
}

a= [1,2,3];
b=[2,3,4];
n = new Set([...a,...b]);
x = [...n]//[1, 2, 3, 4]

谢邀.

建议拿到问题首先分析。

  • 输入的是什么?两个数组[1,2,3]和[4,5,6]。
  • 输出的是什么?一个新数组[5,7,9]。

如果你要写一个函数,那么参数和return已经有了。
接下来,怎么从输入可以得到输出?

  • 从这题看来,两个数组下标相同的项相加,就可以得到新数组相同下标的项。

对,这就是要用的算法。
接下来,可以用什么去做?

  • 讲了半天都是数组,自然优先去看javascript中的Array标准库的部分。另外程序流程、运算符之类的基础知识也不可少。

嗯,这就差不多了。一开始写可能会比较拙,没事,可以一遍遍优化,熟能生巧嘛。
程序上边都写的差不多了,不再赘述。

最后提一点需要注意的就是:仔细!

比如题目里提到:

var a=[1,2,3];b=[4,5,6];

这里要注意中间那个分号,批量赋值时要用逗号哟,严格模式下这个要报错的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题