Я пытаюсь перебрать указанный массив и проверить, что повторяющихся имен нет.Если есть, добавьте число рядом с повторяющимся именем файла.Это мой код:
const renameFiles = (arr) => {
let n = 1;
return arr.reduce((accum, element) => {
if (!accum.includes(element)) accum.push(element);
else {
element = `${element}(${n})`;
n++;
if (!accum.includes(element)) accum.push(element);
}
return accum;
}, []);
}
При получении:
renameFiles([
'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(1)', 'a(6)', 'a', 'a(2)', 'a(3)', 'a(4)', 'a(5)', 'a(7)', 'a(8)', 'a(9)', 'a(10)', 'a(11)' ].
Я не уверен, почему он не заканчивает цикл между двумя последними элементами в массиве.