鍍金池/ 問答/HTML/ 兩個數(shù)組如何對應(yīng)相加 js

兩個數(shù)組如何對應(yīng)相加 js

比如 var a=[1,2,3];b=[4,5,6];
兩個數(shù)組相加如何能得到[5,7,9]這樣的數(shù)組。

回答
編輯回答
笨尐豬
  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);
2017年3月27日 19:46
編輯回答
若相惜

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

2017年8月15日 10:29
編輯回答
拮據(jù)

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

2017年3月10日 05:18
編輯回答
背叛者

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

2018年1月5日 12:49
編輯回答
朕略萌

循環(huán)相加吧;

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]
    }
}
2017年2月26日 08:01
編輯回答
落殤

謝邀.

建議拿到問題首先分析。

  • 輸入的是什么?兩個數(shù)組[1,2,3]和[4,5,6]。
  • 輸出的是什么?一個新數(shù)組[5,7,9]。

如果你要寫一個函數(shù),那么參數(shù)和return已經(jīng)有了。
接下來,怎么從輸入可以得到輸出?

  • 從這題看來,兩個數(shù)組下標(biāo)相同的項相加,就可以得到新數(shù)組相同下標(biāo)的項。

對,這就是要用的算法。
接下來,可以用什么去做?

  • 講了半天都是數(shù)組,自然優(yōu)先去看javascript中的Array標(biāo)準(zhǔn)庫的部分。另外程序流程、運算符之類的基礎(chǔ)知識也不可少。

嗯,這就差不多了。一開始寫可能會比較拙,沒事,可以一遍遍優(yōu)化,熟能生巧嘛。
程序上邊都寫的差不多了,不再贅述。

最后提一點需要注意的就是:仔細!

比如題目里提到:

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

這里要注意中間那個分號,批量賦值時要用逗號喲,嚴(yán)格模式下這個要報錯的。

2018年8月15日 08:20
編輯回答
毀了心
a.map(function(item,index){
    return item+b[index]
})
有很多種方式,你也可以for循環(huán)累加,`for in`,`Array.foreach`等
你的私信問題受字?jǐn)?shù)限制
只能發(fā)到這邊了
var result= array.reduce(function(initObj,item,index,array){
             //根據(jù)條件進行分組
                 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)
                 }
                 //根據(jù)分組按從小到大排序
                 
             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)
2017年6月12日 02:15