JSFiddle - React, Tailwind, and code Playground

by Boba Poshtar

HTML

<p>Дано строку в якій можуть бути скобки (){}[]&lt;&gt;, потрібно перевірити чи всі скобки відкриті і закриті правильно і в правильному порядку. Повернути true чи false.</p>
<input>
<p>Результат: <span class="result">-</span></p>

JavaScript

let input = document.querySelector('input'),
		result = document.querySelector('.result');
input.addEventListener('input', () => result.innerText = verify(input.value));

function verify(s){
		let isBracket = (s, type) => (type === 'open' ? '([{<' : ')]}>').indexOf(s[0]) > -1;
		let para = (s, arr) => ({')':'(',']':'[','}':'{','>':'<'})[s] === arr[arr.length - 1];
		let brackets = [];
		for (let i = 0; i < s.length; i++) {
			if (isBracket(s[i], 'open')) brackets.push(s[i]);
			if (isBracket(s[i], 'close'))
				if (para(s[i], brackets)) brackets.pop();
				else return false;
		}
		return brackets.length === 0;
	}