const isBalanced = function (input) { let open = ['{', '[', '(']; let close = ['}', ']', ')']; let stack = []; for (let i = 0; i < input.length; i++) { if (open.indexOf(input[i]) >= 0) { stack.push(input[i]); } else { if (close.indexOf(input[i]) !== open.indexOf(stack.pop())) { return false; } } } if (stack.length > 0) { return false; } return true; }; console.log(isBalanced("[[]]")); // true console.log(isBalanced("[[]")); // false console.log(isBalanced("[]]")); // false