2015-08-18 3 views
0

Что делаетJs Отображение объекта

var brackets = { 
     '(': ')', 
     '{': '}', 
     '[': ']' 
    }; 

Из следующего кода делать? Можете ли вы привести примеры использования такого типа объектов? Я знаю, что объекты могут иметь методы и свойства, но что означает это сопоставление скобок с противоположными?

// Use an object to map sets of brackets to their opposites 
var brackets = { 
    '(': ')', 
    '{': '}', 
    '[': ']' 
}; 

// On each input string, process it using the balance checker 
module.exports = function (string) { 
    var stack = []; 
    // Process every character on input 
    for (var i = 0; i < string.length; i++) { 
    if (brackets[stack[stack.length - 1]] === string[i]) { 
     stack.pop(); 
    } else { 
     stack.push(string[i]); 
    } 
    } 

    return !stack.length; 
}; 
+3

Это просто означает, что 'скобки ['(']' is '')'', 'brackets ['{']' is ''}'' и 'brackets ['['] 'is' ']' '. – Jashaszun

+0

'a === b' but' b! == a' –

ответ

0
var brackets = { 
    '(': ')', 
    '{': '}', 
    '[': ']' 
}; 

Код, приведенный выше, представляет собой определение объекта javaScript с именем скобки. Этот объект имеет три строковых поля, для которых заданы значения. Имена полей бывают '(', '{', '[', а значения - ')', '}', ']' соответственно.

Они могли бы быть:

var brackets = { 
    'ABC': ')', 
    'XYZ': '}', 
    'BBC': ']' 
}; 

Я думаю, что вы просто сбит с толку странным именем для переменных. Который в этом случае используется, потому что это скопированный код соответствия.

Для использования этих полей, вы могли бы использоваться кронштейн обозначения:

var test = brackets['(']; 

который дал бы строковое значение «)» в тестовой переменной.

Dot нотации:

brackets.( 

не будет работать, потому что это особый характер. Больше информации здесь: difference between dot notation and bracket notation in javascript

+1

То, что меня смущает, это то, как я могу использовать этот тип свойства объекта. Например, если у меня был объект var myObj = {property1: "some property"} , и я хотел отправить сообщение msg box пользователю, он будет предупрежден (myObj.property1) ;. Для этого скобки var, он был бы бдительным (скобки ['(']), и вот как это меня смущает, потому что это тоже объект, но способ представления его свойств отличается – badso

1

Этот код проверяет, имеют ли все открывающиеся кронштейны соответствующие закрывающие скобки в данной строке. Это обычное упражнение по кодированию из интервью. По какой-то причине работодатели хотят нанять девелоперов с хорошими навыками игры в Google.

+0

Да, я знаю, что это цель кода, но это не то, что я спросил. Вопрос в том, как работает переменная скобки и примеры ее использования в других ситуациях. – badso

+0

скобки ['{'] равно '}', например. –

+0

@Vic, подумайте об этом так: * Какой символ мне нужно совместить, когда я сталкиваюсь с символом X? * Ответ - «скобки [X]». –

Смежные вопросы