我想在下面的排序数组每个单位的重复索引。
单元39从索引1到索引3重复,对吗?
const array = [
{
unit: 38,
},
{
unit: 39,
},
{
unit: 39,
},
{
unit: 39,
},
{
unit: 40,
},
{
unit: 41,
},
{
unit: 41,
},
{
unit: 42,
},
]
因此,期望的结果将是:
[
{
unit: 39,
fromIndex: 1,
toIndex: 3,
},
{
unit: 41,
fromIndex: 5,
toIndex: 6,
},
]
我试着记住每对单元的索引,但这个想法不适用于超过两次的重复。所以我想我需要一只手
let u;
for (let i = 0; i < array.length; i++) {
const a = array[i];
const b = array[i + 1] || {
unit: null
};
if (a.unit == b.unit) {
u = a.unit; // remmeber the repeated unit here
...
}
}
2条答案
按热度按时间sshcrbum1#
您可以检查最新的项目或在结果中的最后一项。
siv3szwd2#
可以使用数组reduce和filter方法: