数组作为javascript映射';钥匙是什么?

数组作为javascript映射';钥匙是什么?,javascript,arrays,dictionary,Javascript,Arrays,Dictionary,Map是ECMA6中的一个新对象,如果将多个值指定给同一个键,它将覆盖所有以前的值。比如说, “严格使用”; var m=新映射(); m、 集合(['aaron',100]); m、 集合(['aaron',100],1); m、 集合(['aaron',100],10); m、 集合(['aaron',100],100); m、 集合(['aaron',100],1000); m、 套(['aaron',100],10000); log(m.get(['aron',100])映射将数组的引

Map是ECMA6中的一个新对象,如果将多个值指定给同一个键,它将覆盖所有以前的值。比如说,

“严格使用”;
var m=新映射();
m、 集合(['aaron',100]);
m、 集合(['aaron',100],1);
m、 集合(['aaron',100],10);
m、 集合(['aaron',100],100);
m、 集合(['aaron',100],1000);
m、 套(['aaron',100],10000);

log(m.get(['aron',100])
映射将数组的引用而不是数组的内容用作键

这个简单的比较表明,具有相同内容的数组不是相同的数组(具有不同的引用):

const a=[aaron',100];
常数b=['aaron',100];

console.log(a==b)在JavaScript中,数组、对象或函数都是引用类型,当您比较它们时,您实际做的是将引用与它们在内存中的位置进行比较,而不是将它们的值进行比较。由于它们都分配到不同的位置,结果将返回“false”

您应该做的是将它们转换为基本类型。JSON字符串,例如:

a={1:'foo'},
b={1:'foo'};
console.log(a==b);

log(JSON.stringify(a)==JSON.stringify(b))
@mplungjan-如果要查看地图,可以查看浏览器控制台。查看浏览器控制台,或使用m.entries()查看[key,value]对