【发布时间】:2017-12-07 10:24:30
【问题描述】:
我正在尝试了解以下解决方案,以在任何给定数组中查找最大的相邻产品。
例子:
For inputArray = [3, 6, -2, -5, 7, 3], the output should be
adjacentElementsProduct(inputArray) = 21.
7 and 3 produce the largest product.
JS 中可能的解决方案:
function adjacentElementsProduct(arr) {
return Math.max(...arr.slice(1).map((x,i)=>[x*arr[i]]))
}
我很难理解两件事:
这三个点到底是做什么的,又是如何传递给函数的?有没有办法以更容易理解的方式写这个?我知道这是 ES6 中的“扩展语法”特性,但还是不完全理解。
为什么要插入“1”作为切片的参数?我的第一个想法是输入“0”,因为我们想从头开始,然后遍历所有内容,看看哪个相邻的产品最大。
如果有任何建议、链接和解释,我将不胜感激。
谢谢。
干杯!
【问题讨论】:
-
1 - 阅读扩展文档,或转译到 ES5 以查看它的作用 transpiled here, 2 - 因为数组中有 n 个项目,您想要检查 n - 1 个产品
标签: javascript arrays algorithm spread-syntax