第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在 Javascript 中對(duì)任意數(shù)量的不同長(zhǎng)度的數(shù)組的元素求和?

如何在 Javascript 中對(duì)任意數(shù)量的不同長(zhǎng)度的數(shù)組的元素求和?

慕俠2389804 2023-07-14 09:43:46
雖然下面的代碼將滿足添加兩個(gè)不同長(zhǎng)度的數(shù)組,但我如何修改它以接受任意數(shù)量的數(shù)組作為參數(shù),例如 ([1, 2, 3], [4, 5], [6 ]) 將返回 [11, 7, 3] 數(shù)組?const addTogether = (arr1, arr2) => {  let result = [];  for (let i = 0; i < Math.max(arr1.length, arr2.length); i++) {    result.push((arr1[i] || 0) + (arr2[i] || 0))  }  return result}
查看完整描述

5 回答

?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊

使用嵌套數(shù)組,并循環(huán)數(shù)組而不是硬編碼兩個(gè)數(shù)組變量。


您可以使用arrays.map()來(lái)獲取所有長(zhǎng)度,以便計(jì)算最大長(zhǎng)度。并對(duì)arrays.reduce()每個(gè)數(shù)組中的一個(gè)元素求和。


const addTogether = (...arrays) => {

  let result = [];

  let len = Math.max(...arrays.map(a => a.length));

  for (let i = 0; i < len; i++) {

    result.push(arrays.reduce((sum, arr) => sum + (arr[i] || 0), 0));

  }

  return result

}


console.log(addTogether([1, 2, 3], [4, 5], [6]));


查看完整回答
反對(duì) 回復(fù) 2023-07-14
?
弒天下

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊

解決方案:


const addTogether = (...args) => {

let result = [];

let max = 0;

args.forEach((arg)=>{

    max = Math.max(max,arg.length)

})

for(let j=0;j<max;j++){

result[j]= 0

for (let i = 0; i < args.length; i++) {

   if(args[i][j])

     result[j]+= args[i][j]

     }

  }

  return result

 }

 console.log(addTogether([1, 2, 3], [4, 5], [6]))


查看完整回答
反對(duì) 回復(fù) 2023-07-14
?
富國(guó)滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

您可以在函數(shù)內(nèi)部使用參數(shù)對(duì)象。

arguments是一個(gè)可在函數(shù)內(nèi)部訪問(wèn)的類數(shù)組對(duì)象,其中包含傳遞給該函數(shù)的參數(shù)值。

const addTogether = function () {

? const inputs = [...arguments];

? const maxLen = Math.max(...inputs.map((item) => item.length));

? const result = [];

? for (let i = 0; i < maxLen; i ++) {

? ? result.push(inputs.reduce((acc, cur) => acc + (cur[i] || 0), 0));

? }

? return result;

};


console.log(addTogether([1,2,3], [4,5], [6]));


查看完整回答
反對(duì) 回復(fù) 2023-07-14
?
繁花不似錦

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊

用于rest param syntax接受任意數(shù)量的參數(shù)。按外部數(shù)組的長(zhǎng)度降序?qū)ν獠繑?shù)組進(jìn)行排序。通過(guò)使用解構(gòu)賦值將內(nèi)部數(shù)組的第一個(gè)和其余部分分開(kāi)。最后使用Array.prototype.map()遍歷第一個(gè)數(shù)組,因?yàn)樗亲畲蟮臄?shù)組,并使用Array.prototype.reduce()方法來(lái)獲取總和。


const addTogether = (...ar) => {

  ar.sort((x, y) => y.length - x.length);

  const [first, ...br] = ar;

  return first.map(

    (x, i) => x + br.reduce((p, c) => (i < c.length ? c[i] + p : p), 0)

  );

};


console.log(addTogether([1, 2, 3], [4, 5], [6]));


查看完整回答
反對(duì) 回復(fù) 2023-07-14
?
慕虎7371278

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊

不要使用for要求您知道每個(gè)數(shù)組長(zhǎng)度的循環(huán),而是嘗試使用不需要的東西。例如 -while循環(huán)。

使用虛擬變量遞增并為每個(gè)數(shù)組重置它,并將循環(huán)終止條件設(shè)置為 - arr[i] === null。


查看完整回答
反對(duì) 回復(fù) 2023-07-14
  • 5 回答
  • 0 關(guān)注
  • 252 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)