Я прохожу по inpStr до тех пор, пока не найду строчку, где скобка из массива inpStr[i] будет равна скобке bracketsConfig[j][0] и inpStr[i+1] будет равна bracketsConfig[j][1], при этом я удаляю из массива inpStr эту пару скобок, после чего присваиваю i = 0 и прохожу заново, до последних двух элементов все отлично удаляется, но последние 2 элемента почему-то не удаляются, и по итогу остаются в массиве inpStr, хотя по идее цикл должен выполнится заново, ведь у нас ещё 2 элемента, как это пофиксить?
Он почему-то вообще не заходит последний раз в цикл, после того, как у нас становится 2 элемента
function check(str, bracketsConfig) {
let inpStr = str.split('');
let openBracket;
let closeBracket;
for(let i = 0; i < inpStr.length; i++){
for(let j = 0; j < bracketsConfig.length; j++){
openBracket = bracketsConfig[j][0]
closeBracket = bracketsConfig[j][1]
if(inpStr[i] == openBracket && inpStr[i+1] == closeBracket){
inpStr.splice(i,2)
i = 0;
} else {
continue;
}
}
}
alert(inpStr.length);
alert(inpStr[0])
alert(inpStr[1])
}
alert(check('([{}])', [['(', ')'], ['[', ']'], ['{', '}']]));