javascript - 如何找到超过2个重复数字数组的索引并将索引处的项目转换为升序?
问题描述
让 arr = [' 1 ','5', '2' ,' 1 ','4',' 1 ','9',' 1 ', '2' ];
输出=[' 1 ','5', '2' ,' 2 ','4',' 3 ','9',' 4 ', '3' ];
1是arr中的重复项。因此, arr 中的所有 1都转换为升序1,2,3,4
2也是arr 中的重复项。因此, arr 中的所有 2都转换为升序2,3
请提供演示。非常感谢您的细心阅读。
解决方案
您可以采用单循环方法,为下一个映射提供替换值。这种方法只需要数字,但如果需要,您可以将所有值转换为数字
对于任何重复的数字,它会从对象中获取递增的值。
1, 5, 2, 1, 4, 1, 9, 1, 2
1 2 3 4
2 3
const
array = [1, 5, 2, 1, 4, 1, 9, 1, 2],
values = {},
result = array.map(v => v in values ? ++values[v] : (values[v] = v));
console.log(...result);
推荐阅读
- wordpress - 如何从自定义页面模板调用 WordPress 插件功能?
- c# - Azure Active Directory OpenID 在 Web 浏览器中引发 nonce 异常,但不在 Web 浏览器控件中
- java - 忽略 Junit5 中的测试
- firebase - 检查 kotlin 中的 Firebase Child 值
- android - ProgressBar 不与协调器布局一起出现
- ios - 如何使用 JSONDecoder 将 Int 解码为字符串?
- python - Pandas groupby - 计算相对点的距离
- swift - 设置 Timer 时,.RunLoop.Modes.default 中的“表达式类型不明确,没有更多上下文”
- javascript - 如何将动态创建的按钮单击事件绑定到javascript中动态创建的输入?
- python - 如何测试列表是否按升序排序