【发布时间】:2018-08-06 02:38:48
【问题描述】:
假设有这个矩阵:
myArray = [["a", 6, 5.54, "b"],
["xxx", 65.5, 45],
[343, "abc", 0.09]];
我的目标是计算每个子数组的总和,但忽略最后一个子数组,本例为[343, "abc", 0.09]。另外,忽略字符串值。
我设法对所有子数组都这样做了,它看起来像这样:
myArray = [["a", 6, 5.54, "b"],
["xxx", 65.5, 45],
[343, "abc", 0.09]];
result = myArray.map(a => a.reduce((s, v) => s + (+v || 0), 0));
console.log(result)
不知道要添加哪个条件才能忽略最后一个子数组。
有什么想法吗?
【问题讨论】:
-
用
.map()这样做没有什么意义,因为它旨在用于为源数组的每个元素生成一个值。您可以改用.reduce(),而不是在最后一次调用回调时更改累加器。 -
reduce函数还接受两个附加参数:索引和数组。这应该可以为您提供确定您是否在最后一个索引上所需的信息。 -
这很容易通过一个简单的循环来完成。
标签: javascript arrays