我想知道使用 javascript 将数组元素相乘的最快和最有效的方法。
var array = ["1", "2", "3", "4"];
Run Code Online (Sandbox Code Playgroud)
所以结果总共是10。
首先,这些值是字符串,而不是数字,所以首先要做的是让它们成为数字:
array.map(Number)
Run Code Online (Sandbox Code Playgroud)
然后乘以 .reduce
array.map(Number).reduce(function(product, value) { return product * value; });
Run Code Online (Sandbox Code Playgroud)
编辑——注释明智地指出,*无论如何,运算符都会尝试将其操作数转换为数字。通过显式转换为数字,您可以添加一个过滤器来查看是否NaN产生了任何值,但NaN会像癌症一样传播,所以这真的无关紧要。考虑可选的数字转换。
现在,一般来说,如果我从 API 获取数字作为字符串的数组,我会倾向于进行显式转换,因为从某种意义上说,这意味着 API 的设计确实存在问题。我更愿意将任何“有趣”的代码与诸如此类的奇怪东西隔离开来。
| 归档时间: |
|
| 查看次数: |
6888 次 |
| 最近记录: |