--- title: Balanced brackets id: 594dc6c729e5700999302b45 challengeType: 5 --- ## Description

Determine whether a generated string of brackets is balanced; that is, whether it consists entirely of pairs of opening/closing brackets (in that order), none of which mis-nest.

Examples:

(empty) true

[] true

][ false

[][] true

][][ false

[]][[] false

[[[[]]]] true

## Instructions
## Tests
```yml tests: - text: isBalanced is a function. testString: assert(typeof isBalanced === 'function', 'isBalanced is a function.'); - text: isBalanced("[]") should return true. testString: assert(isBalanced(testCases[0]), 'isBalanced("[]") should return true.'); - text: isBalanced("]][[[][][][]][") should return false. testString: assert(!isBalanced(testCases[1]), 'isBalanced("]][[[][][][]][") should return false.'); - text: isBalanced("[][[[[][][[[]]]]]]") should return true. testString: assert(isBalanced(testCases[2]), 'isBalanced("[][[[[][][[[]]]]]]") should return true.'); - text: isBalanced("][") should return true. testString: assert(!isBalanced(testCases[3]), 'isBalanced("][") should return true.'); - text: isBalanced("[[[]]]][[]") should return true. testString: assert(!isBalanced(testCases[4]), 'isBalanced("[[[]]]][[]") should return true.'); - text: isBalanced("][[]") should return true. testString: assert(!isBalanced(testCases[5]), 'isBalanced("][[]") should return true.'); - text: isBalanced("][[][]][[[]]") should return true. testString: assert(!isBalanced(testCases[6]), 'isBalanced("][[][]][[[]]") should return true.'); - text: isBalanced("[[][]]][") should return true. testString: assert(!isBalanced(testCases[7]), 'isBalanced("[[][]]][") should return true.'); - text: isBalanced("[[[]]][[]]]][][[") should return true. testString: assert(!isBalanced(testCases[8]), 'isBalanced("[[[]]][[]]]][][[") should return true.'); - text: isBalanced("[]][[]]][[[[][]]") should return true. testString: assert(!isBalanced(testCases[9]), 'isBalanced("[]][[]]][[[[][]]") should return true.'); - text: isBalanced("][]][[][") should return true. testString: assert(!isBalanced(testCases[10]), 'isBalanced("][]][[][") should return true.'); - text: isBalanced("[[]][[][]]") should return true. testString: assert(isBalanced(testCases[11]), 'isBalanced("[[]][[][]]") should return true.'); - text: isBalanced("[[]]") should return true. testString: assert(isBalanced(testCases[12]), 'isBalanced("[[]]") should return true.'); - text: isBalanced("]][]][[]][[[") should return true. testString: assert(!isBalanced(testCases[13]), 'isBalanced("]][]][[]][[[") should return true.'); - text: isBalanced("][]][][[") should return true. testString: assert(!isBalanced(testCases[14]), 'isBalanced("][]][][[") should return true.'); - text: isBalanced("][][") should return true. testString: assert(!isBalanced(testCases[15]), 'isBalanced("][][") should return true.'); - text: isBalanced("[[]]][][][[]][") should return true. testString: assert(!isBalanced(testCases[16]), 'isBalanced("[[]]][][][[]][") should return true.'); - text: isBalanced("") should return true. testString: assert(isBalanced(testCases[17]), 'isBalanced("") should return true.'); ```
## Challenge Seed
```js function isBalanced (str) { // Good luck! return true; } ```
### After Test
```js const testCases = [ '[]', ']][[[][][][]][', '[][[[[][][[[]]]]]]', '][', '[[[]]]][[]', '][[]', '][[][]][[[]]', '[[][]]][', '[[[]]][[]]]][][[', '[]][[]]][[[[][]]', '][]][[][', '[[]][[][]]', '[[]]', ']][]][[]][[[', '][]][][[', '][][', '[[]]][][][[]][', '' ]; ```
## Solution
```js function isBalanced (str) { if (str === '') return true; let a = str; let b; do { b = a; a = a.replace(/\[\]/g, ''); } while (a !== b); return !a; } ```