@danyvasnafig

Почему не удаляются последние в цикле элементы из массива?

Я прохожу по 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('([{}])', [['(', ')'], ['[', ']'], ['{', '}']]));
  • Вопрос задан
  • 138 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 13:31
10000 руб./за проект
19 апр. 2024, в 13:12
35000 руб./за проект
19 апр. 2024, в 13:06
6000 руб./за проект