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

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

Javascript:查找相鄰數(shù)組元素的乘積并返回最大的乘積

Javascript:查找相鄰數(shù)組元素的乘積并返回最大的乘積

翻翻過去那場雪 2021-11-25 19:22:19
我正在努力提高我的 JS 技能并解決 CodeSignal 上的一些問題。我正在解決以下問題:給定一個(gè)整數(shù)數(shù)組,找到具有最大乘積的相鄰元素對并返回該乘積。因此,例如,給定數(shù)組[2,3,5,10,2,4]我想要執(zhí)行以下操作:2 * 3 = 65 * 10 = 502 * 4 = 8然后我想返回最大的產(chǎn)品,在這種情況下是 50。我的方法是使用 for 循環(huán)進(jìn)行迭代,乘以 i * i + 1,將乘積推入一個(gè)新數(shù)組,然后將 for 循環(huán)增加 2,這樣我就可以將數(shù)組中的下兩個(gè)數(shù)字相乘。當(dāng)我完成推入新數(shù)組時(shí),我想使用Math.max并在數(shù)字?jǐn)?shù)組上調(diào)用它以返回最大的乘積。Math.max 不適用于數(shù)組,因此我將使用 ES6 擴(kuò)展運(yùn)算符并執(zhí)行以下操作: Math.max(...products);這是我到目前為止不起作用的內(nèi)容:function adjacentElementsProduct(inputArray) {    var products = [];    for(var i = 0; i <= inputArray.length; i = i + 2) {        products.push(inputArray[i] * inputArray[i + 1]);    };     // Correctly logs elements of products array     console.log(products);     // NaN error     console.log(Math.max(...products));     return Math.max(...products);}此 NaN 錯(cuò)誤是否與在 for 循環(huán)完成并將值推入數(shù)組之前嘗試調(diào)用 Math.max 和擴(kuò)展運(yùn)算符有關(guān)?
查看完整描述

2 回答

?
BIG陽

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

由于您將 2 添加到i然后查看iand i + 1,您真的只想在0and之間循環(huán)inputArray.length - 2。


鑒于您的示例代碼,您可以通過更改for循環(huán)來解決此問題:


for(var i = 0; i <= inputArray.length - 2; i = i + 2) {

        products.push(inputArray[i] * inputArray[i + 1]);


};

讓我們手動分解它,以便您可以看到它的實(shí)際效果:

  • i = 0我們的價(jià)值觀是[2, 3]誰的產(chǎn)品6

  • i = 2我們的價(jià)值觀是[5, 10]誰的產(chǎn)品50

  • i = 4我們的價(jià)值觀是[2, 4]誰的產(chǎn)品8。

此時(shí)我們的循環(huán)結(jié)束,因?yàn)?code>inputArray.length - 2也等于4ie 6 - 2 === 4。

您可能還需要包括不均勻的陣列進(jìn)行檢查,這樣你就不會的產(chǎn)品最終n和 undefined。您可以通過在找到它們的產(chǎn)品之前檢查值并忽略任何undefined包含的對來做到這一點(diǎn)。

為了更有趣,這里有一個(gè)遞歸版本的函數(shù):

const adjacentElementsProduct = ([a, b, ...rest], agg = []) =>  rest.length 

? adjacentElementsProduct(rest, [...agg, a * b]) 

: Math.max(...agg);


查看完整回答
反對 回復(fù) 2021-11-25
?
慕村225694

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

i <= inputArray.length應(yīng)該是i < inputArray.length。數(shù)組索引從0array.length-1。當(dāng) 時(shí)i == inputArray.length,您將兩個(gè)undefined值相加,從而產(chǎn)生NaN.


查看完整回答
反對 回復(fù) 2021-11-25
  • 2 回答
  • 0 關(guān)注
  • 382 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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