我有以下数组,我希望检索元素正在更改的原始(已排序)数组的索引以及该单个元素存在的频率。
ab = [1,1,1,3,3,5,5,5,5,5,6,6]
期望的结果应该是这样的:
ac = [0,3,5,10]
ad = [3,2,5,2]
非常感谢您的任何建议。
干杯。
最佳答案
您可以迭代数组并检查前导。如果相等,则增加最后一个计数,否则添加索引和计数 1。
var array = [1, 1, 1, 3, 3, 5, 5, 5, 5, 5, 6, 6],
{ indices, counts } = array.reduce((r, v, i, a) => {
if (a[i - 1] === v) {
r.counts[r.counts.length - 1]++;
} else {
r.indices.push(i);
r.counts.push(1);
}
return r;
}, { indices: [], counts: [] });
console.log(...indices);
console.log(...counts);
关于javascript - 如何获取元素更改的排序列表的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55049616/