【发布时间】:2017-07-29 01:58:15
【问题描述】:
我正在寻求帮助以解决重命名数组中的字符串的问题,如下所示:
["a(1)","a(6)","a","a","a","a","a","a","a","a","a","a"]
函数执行后应该如下所示:
["a(1)","a(6)","a","a(2)","a(3)","a(4)","a(5)","a(7)","a(8)","a(9)","a(10)","a(11)"]
空数组和没有重复的数组应该保持不变。
我的想法是用键/值对填充一个空对象,然后将它们推送到一个新数组:
function renameFiles(arr){
var itemsObj = {};
var count = 1;
for (var i = 0; i < arr.length; i++){
itemsObj[arr[i]] = count;
// if the key present, rename the array item and add it to the
// itemsObj
if (arr[i] in itemsObj){
itemsObj[arr[i] + '(' + (i - (i - 1)) + ')']
}
}
console.log(itemsObj)
// once the itmesObj is set, run the loop and push the keys to the
// array
return arr;
}
var array = ["a(1)","a(6)","a","a","a","a","a","a","a","a","a","a"]
renameFiles(array);
问题是itemsObj 没有填充重复键。应该有其他方法可以处理此任务。我是初学者,可能不知道这种方法。
【问题讨论】:
标签: javascript arrays string object rename