javascript - 如何获取元素更改的排序列表的索引?

标签 javascript arrays

我有以下数组,我希望检索元素正在更改的原始(已排序)数组的索引以及该单个元素存在的频率。

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/

相关文章:

javascript - 部分刷新后 UIkit 选项卡和切换器不起作用

javascript - 在 http 请求之前检查访问 token

python - 如何阻止 Python 在迭代时添加空格?

ruby - 修改实例变量也是修改原数组

python - numpy 中是否有函数可以替换 numpy 数组的下对角线和上对角线值?

javascript - Three.js Projector 和 Ray 对象

javascript - 原型(prototype)框架破坏其他脚本

javascript - 为 Node 6 转译所需的最少一组 babel 插件是什么

arrays - 如何更改二维数组的大小

Ruby每道逻辑题