在 javascript 中的字符串末尾添加一个递增的数字,这样数组中就没有重复的条目

Add an incrementing number to end of string in javascript so there are no duplicate entries in the array

我需要获取一个名称数组,删除所有仅为数字的名称,如果有重复的名称,则在该字符串的末尾添加一个递增的数字。下面代码中的示例执行此操作,但仅限于第三个条目。之后它继续为 'test2' 或 'trick2' 而它应该是 'test3' 和 'trick3'。

const deviceNames = ['test', 'trick', '4', 'test', 'trick', '8', 'test', 'trick', 'test', 'trick']
const deviceNameSystem = (deviceNames) => {
  let arr = [];
  deviceNames.map((item)=>{
    let counter = 1
    arr.includes(item + counter) ? counter++ && arr.push(item + counter):
    arr.includes(item) ? arr.push(item + counter): 
    arr.push(item)
  })
  console.log(arr.filter(x => isNaN(x)));
}

deviceNameSystem(deviceNames)

输出 [ 'test', 'trick', 'test1', 'trick1', 'test2', 'trick2', 'test2', 'trick2']

var nameHash = {}  
var newList = [];  
deviceNames.foreach(name => {
  if(name == parseInt(name))
    return;
  if(!nameHash[name]) {
    nameHash[name] = 1;
    newList.push(name);
  } else {
     newList.push(name + nameHash[name]);
     nameHash[name]++;
  }
});