【发布时间】:2021-05-18 10:11:16
【问题描述】:
当我有这个数据结构的数组时:
[[3, 16, 1]
[3, 17, 1]
[3, 18, 1]
[3, 19, 1]
[3, 20, 1]
[3, 19, 1]
[3, 21, 1]
[3, 23, 1]
[3, 16, 1]
[3, 17, 1]
[2, 24, 1]
[2, 25, 1]
[2, 26, 1]
[2, 24, 1]]
我想计算数组元素并将其乘以数组的最后一个数字,如下所示:
[[3, 16, 2]
[3, 17, 2]
[3, 18, 1]
[3, 19, 2]
[3, 20, 1]
[3, 21, 1]
[3, 23, 1]
[2, 24, 2]
[2, 25, 1]
[2, 26, 1]]
我尝试这样做:
array.forEach(function(x) {
counts[x] = (counts[x] || 0)+1;
});
但是这改变了数据结构,还有其他的形式可以做到吗?
【问题讨论】:
-
不清楚问题在做什么。 [3,16,1] 和 [3,16,2] 都出现在输出数组中。
-
对不起,我更改数据输出并删除 [3,16,1] 。我只想计算相等的数组并将其乘以它的最后一个值。有两个数组 [3,16,1] ,因此我乘以 2 [3,16, 1 * 2] 。
-
不确定您的
counts函数是什么,所以我为您的问题编写了自己的函数。
标签: javascript arrays multidimensional-array