Javascript 在ES6中编写映射/集的更简单方法(编译器还是语法糖?)

Javascript 在ES6中编写映射/集的更简单方法(编译器还是语法糖?),javascript,ecmascript-6,Javascript,Ecmascript 6,我一直不明白为什么我们不能这样写ES6地图: new Map({ ['ArrayAsKey']: {foo:bar} }) new Map({ ['ArrayAsKey']: {foo:bar} }) 有没有办法做到这一点?或者任何使使用这些新数据结构更愉快的方法 我一直不明白为什么我们不能这样写ES6地图: new Map({ ['ArrayAsKey']: {foo:bar} }) new Map({ ['ArrayAsKey']: {foo:bar}

我一直不明白为什么我们不能这样写ES6地图:

new Map({
    ['ArrayAsKey']: {foo:bar}
})
new Map({
    ['ArrayAsKey']: {foo:bar}
})
有没有办法做到这一点?或者任何使使用这些新数据结构更愉快的方法

我一直不明白为什么我们不能这样写ES6地图:

new Map({
    ['ArrayAsKey']: {foo:bar}
})
new Map({
    ['ArrayAsKey']: {foo:bar}
})
因为这种语法只允许键使用字符串;所有其他类型将被字符串化

但您可以传递键值对列表:

const a={foo:13};
常数b={foo:13};
常量映射=新映射([
[a,“常数a”],
[b,“常数b”]
]);
log(map.get(a),a);
console.log(map.get(b),b)
我一直不明白为什么我们不能这样写ES6地图:

new Map({
    ['ArrayAsKey']: {foo:bar}
})
new Map({
    ['ArrayAsKey']: {foo:bar}
})
因为这种语法只允许键使用字符串;所有其他类型将被字符串化

但您可以传递键值对列表:

const a={foo:13};
常数b={foo:13};
常量映射=新映射([
[a,“常数a”],
[b,“常数b”]
]);
log(map.get(a),a);

console.log(map.get(b),b)那个语法是什么意思?我很困惑,所以可能是为什么它没有完成。那个语法是什么意思?我很困惑,所以可能是为什么它没有完成。