JS 对象映射问题

JS Object Mapping Quesions

我一直在努力理解这部分代码:

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

在第 9 行。“map[stack[stack.length-1]]”是什么意思?起初我以为地图是一个对象,但我认为你应该在属性周围添加“”标记。 map是一种数据结构吗?如果是,我该如何使用这个数据结构?

    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;
};

地图是一个对象并且

map[stack[stack.length - 1]]

是 'map' 的 属性,其中键是数组堆栈的最后一个元素的值。 由于可以通过这两种方式访问​​对象的属性

const object = {
"property1" : value1,
"property2" : value2,
}
object.property1 == object['property1']; // is true
object.property2 == object['property2']; // is also true