【发布时间】:2021-11-12 04:31:02
【问题描述】:
我有一个二维数组:
var arr1 = [["Egypt","Grid",50],["Egypt","Grid",10],["Nigeria","Grid",20],["Ghana","Grid",60],["Egypt","Grid",30]]
我想检查每个数组的第一个元素,例如埃及、尼日利亚和加纳,看看它们是否重复。但我只希望它检查下一个元素,而不是检查数组中的所有元素。如果一个或多个元素相邻重复,我想返回一个数组,将位置 2 (50,10,20,60,30) 的元素相加
这应该会导致:
var arr2 = [["Egypt","Grid",60],["Nigeria","Grid",20],["Ghana","Grid",60]],["Egypt","Grid",30]]
请注意,即使有 3 个带有“Egypt”的数组,它也只会组合它们彼此相邻的位置。
我已经尝试了map 和for loop,但没有任何可以工作的东西。这是我开始的:
arr1.map(function (unit, index, array) {
var length = array.length
if (index < length - 2) {
var next = array[index + 1][0]
if (unit[0] === next) {
}
}
})
这可以检查元素是否重复。我想我接下来需要将重复项放入一个单独的数组中,然后我可以 reduce 但不知道该怎么做。任何能帮助我指出正确方向的帮助都会很棒。谢谢!
【问题讨论】:
标签: javascript arrays dictionary