Я хочу вставить имя в массив, имя будет именем по умолчанию.
Если имя уже существует, мне нужно добавить целое число перед нажатием, что-то вроде увеличения, если экземпляр существует.
Если он не существует, он должен создавать экземпляр. Будет делать то же самое во всем процессе, но он должен увеличиваться.
var arr = ['team banana', 'team melon', 'team melon 2', 'team orange']
var name = 'team apple'; // this is default team name
var xarr = [];
if(arr.length){
// store the all instances of 'team apple'
for(var c = 0; c <= arr.length; c++){
if(arr[c] !== undefined){
if(arr[c].indexOf('team apple') > -1){
xarr.push(arr[c].replace(/['0-9']/g,''))
}
}
}
// start the iterration
for (var k=0; k<=arr.length; k++){
// if existing
if(arr[k] !== undefined){
if(name === arr[k]) {
arr.push(name+' ' + ( xarr.length))
}else{
// if not existing creat an instance of 'team apple'
// arr.push(name) <--- this cause the browser to crash
}
}
}
xarr = []
}else{
arr.push(name )
}
console.log(arr)
То, что я ожидаю в результате, выглядит примерно так:
['team banana', 'team melon', 'team melon 2', 'team orange','team apple','team apple 1', 'team apple 2' ...]
Блок кода уже работает, за исключением того, что если в массиве нет экземпляра 'team apple', он начинает падать
Если массив выглядит так, все работает хорошо:
['team banana', 'team melon', 'team melon 2', 'team orange','team apple']
Но если это выглядит так:
['team banana', 'team melon', 'team melon 2', 'team orange']
Это браузер начинает падать.
Это та часть кода, которая его вызывает, я понятия не имею.
if(name === arr[k]) {
arr.push(name+' ' + (xarr.length))
}else{
// if not existing creat an instance of 'team apple'
// arr.push(name) <--- this cause the browser to crash
}
Я даже не уверен, является ли это правильной реализацией для этого, где я действительно хотел, это увеличивающееся имя. любое предложение будет огромной помощью. Также я ограничен только ES5.
Заранее спасибо