Помогите плз. разобраться
Функция которая показывает правильно ли закрыты раскрыты скобки 3-ий день мучаюсь. Вот мой код:
function check(str, bracketsConfig) {
let resault = [];
let resaultDouble = [];
let itemPos;
const strArr = str.split('');
for(let i=0; i<strArr.length;){
let item = strArr.shift();
for(let k = 0; k<bracketsConfig.length; k++){
itemPos = bracketsConfig[k].indexOf(item);
if(itemPos === -1){
continue;
}
// console.log(`itemPos = ${itemPos}`);
if(k==0){
if(itemPos %2 === 0){
resault.push(itemPos +1)
}
else{
if(resault.pop() !== itemPos) {
continue;
}
}
}else{
if(itemPos %2 === 0){
resaultDouble.push(itemPos +1)
}
else{
if(resaultDouble.pop() !== itemPos) {
continue;
}
}
}
}
}
// console.log(resault);
if(resault > 0 || resaultDouble > 0){
console.log('false');
}
else{
console.log('true');
}
}
check('()', [['(', ')']]) // -> true
check('((()))()', [['(', ')']]) // -> true
check('())(', [['(', ')']]) // -> false
check('([{}])', [['(', ')'], ['[', ']'], ['{', '}']]) // -> true
check('[(])', [['(', ')'], ['[', ']']]) // -> false
check('[]()', [['(', ')'], ['[', ']']]) // -> true
check('[]()(', [['(', ')'], ['[', ']']]) // -> false
Все отрабатывает нормально, кроме вот этой:
check('[(])', [['(', ')'], ['[', ']']]) // -> false
так как функция думает чтот все ок, массивы пришли пустые и мне она выдает true, а надо false