Skip to content
Advertisement

JS Object Mapping Quesions

I’ve been trying to understanding this part of the code:

if(stack.length > 0 && map[stack[stack.length - 1]] === s[i])

at line 9. What does the “map[stack[stack.length-1]]” mean? At first I thought the map is an object, but I think you are supposed to add ” ” mark around the properties. Is map a data structure? if it is, How can I use this data structure?

    var stack = [];
    var len =  s.length;
    var map = {
        '(': ')',
        '[': ']',
        '{': '}',
    };
    for(var i = 0; i<len; i++){
        if(stack.length > 0 && map[stack[stack.length - 1]] === s[i]) {
            stack.pop();
        }else{
            stack.push(s[i]);
        }

    }
    return stack.length === 0;
};

Advertisement

Answer

Map is an object and

map[stack[stack.length - 1]]

is the property of ‘map’ wich key is the value of the last element of the array stack. As properties of an object can be accessed both these ways

const object = {
"property1" : value1,
"property2" : value2,
}
object.property1 == object['property1']; // is true
object.property2 == object['property2']; // is also true
User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement