Показать сообщение отдельно
  #1 (permalink)  
Старый 19.02.2019, 15:56
Интересующийся
Отправить личное сообщение для AndriiS Посмотреть профиль Найти все сообщения от AndriiS
 
Регистрация: 05.09.2018
Сообщений: 28

Как работает код с последовательностью скобок?
Здравствуйте!
Нужна помощь в понимании что происходит в коде, который считает количество скобок в строке. На одном сайте приведен и детально разобран код приведенный ниже. Однако например я не могу понять что это такое за объект?
let opening = { '[': ']', '{': '}', '(': ')', '<': '>', };

Я думаю, что это объект у которого ключи типа 'скобка' и значение типа 'встречная скобка'. Странная и непривычная запись.

(1) Могут быть ключи и значения с такими именами?
(2) Как "работает" запись if(opening[c])? Это эквивалентно if(opening[c]) = true?

Буду благодарен за детальное объяснение как работает этот код. :-)

function correctBrackets(brs){
  let opening = {
    '[': ']',
    '{': '}',
    '(': ')',
    '<': '>',
  };

  let open = 0, close = 0;

  for(let i = 0; i < brs.length; i++){
    let c = brs[i];
    if(opening[c]){
      open++;
    } else {
      close++;
    }
  }

  if(open != close){
    return null;
  }

  // Составляем последовательность
}
Ответить с цитированием