我試圖瞭解以下解決方案,以找到任何給定數組中的最大相鄰產品。查找陣列中最大的相鄰產品(JavaScript)
實例:JS
For inputArray = [3, 6, -2, -5, 7, 3], the output should be
adjacentElementsProduct(inputArray) = 21.
7 and 3 produce the largest product.
可能的解決方案:
function adjacentElementsProduct(arr) {
return Math.max(...arr.slice(1).map((x,i)=>[x*arr[i]]))
}
我有一個很難理解兩件事情:
什麼做的三個點正好做,這是如何傳遞給函數的?有沒有什麼方法可以用更容易理解的方式寫出來?我知道這是ES6中的某種「傳播」功能,但仍然不完全理解。
爲什麼我們插入「1」作爲參數切片?我的第一個選擇是輸入「0」,因爲我們想從頭開始,然後遍歷所有內容,看看哪個相鄰產品是最大的。
我會很感激任何建議,鏈接和解釋。
謝謝。
乾杯!
1 - 閱讀波及文檔,或transpile到ES5,看看它做什麼[這裏transpiled](http://babeljs.io/repl/#?babili=false&evaluate=true&lineWrap=假預置= ENV和目標=瀏覽器= BUILTINS =假調試=假實驗值=真鬆=假規格=真code_lz = GYVwdgxgLglg9mABAQwCYCtkQKZigUQBtsBbXKAZwAUAnOVEaACmRpoEpEBvAKEURrYoIGkgCyyKAAsAdCWQAPJjJWsaMioRg4mARnZzkAByZMFAGhjsAvAD4A2goBUa-zAC679ux4BfIA),2 - 因爲* N *數組中的項目,要檢查* N - –