问一个 Js 中关于字典的问题

2018-11-18 19:29:55 +08:00
 mathzhaoliang

我需要在 js 中创建一个字典,其键是二维的整数数组,比如这种:

D = {};
var p1 = [0, 0];
var p2 = [1, 2];
D[p1] = 1;
D[p2] = 2;

但是这样创建字典以后,我发现如果想取出某个键对应的值的话,比如

var val = D[p1];

这时 val 的值是 undefined. 想请教大家,如何能够让二维的整数数组能够成为字典的键值?

1638 次点击
所在节点    问与答
6 条回复
noe132
2018-11-18 20:23:13 +08:00
使用 map。
let map = new Map()
mathzhaoliang
2018-11-18 20:55:54 +08:00
@noe132 Map() 和 {} 有什么区别吗?
bestie
2018-11-18 21:16:31 +08:00
noe132
2018-11-18 21:24:06 +08:00
普通对象的键只能是字符串
非字符串的值会被隐式转换为字符串
也就是 D[[0, 0]]等价与 D[[0, 0].toString()]
也就是 D["0,0"]

要让对象类型作为键,就需要用 Map.
horizon
2018-11-18 22:06:10 +08:00
楼上说的对。。
c9y
2018-11-19 17:30:51 +08:00
楼上说的对。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/509013

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX