首页 > 解决方案 > 如何找到超过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

请提供演示。非常感谢您的细心阅读。

标签: javascripthtml

解决方案


您可以采用单循环方法,为下一个映射提供替换值。这种方法只需要数字,但如果需要,您可以将所有值转换为数字

对于任何重复的数字,它会从对象中获取递增的值。

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);


推荐阅读