Check whether string of brackets are well-formed The task

I asked similar questions here and here.


  Given a string of round, curly, and square open and closing brackets,
  return whether the brackets are balanced (well-formed).
  
  For example, given the string "([])", you should return true.
  
  Given the string "([)]" or "((()", you should return false.


My solution

...is inspired by @200_success' answer. I only made it more concise.

const isBracketBalanced = brc =&gt; {
  const braces = {
    "(": ")",
    "[": "]",
    "{": "}",
  }, expectCloseStack = [];

  const bracketIsBalanced = b =&gt; braces[b] ?
           expectCloseStack.push(braces[b]) :
           expectCloseStack.pop() === b;

  return [...brc]
    .every(bracketIsBalanced) &amp;&amp;
    !expectCloseStack.length;
};

console.log(isBracketBalanced("([])[]({})"));
There are some issues with the code:


isBracketBalanced - Should be plural. It checks more than one bracket.
bracketIsBalanced - Is basically the same name as the parent function, except it does more than just check if the bracket is balanced. It also manipulates the stack. 
braces - Didn't we just call them brackets?
expectCloseStack declaration - This is perhaps just my personal preference, but to me, writing the declaration after a comma like that makes me look twice to see if it is part of the object that was declared above it.


All in all, I find this solution a bit harder to read than the original. Also, it's actually not more concise.