【发布时间】:2013-08-29 10:37:17
【问题描述】:
我正在尝试将 JS 对象视为字典,并且我想使用一对值(一个文字值,一个其他对象)作为一个键,我一直将其放入数组形式,没有成功。问题是只有文字值可以区分键,如下面的 sn-p 所示:
var dictionary = {};
var keyOne = { blah:1 };
var keyTwo = { blegh:2 };
var keyArrayOne = [keyOne, "label"];
var keyArrayTwo = [keyTwo, "label"];
dictionary[keyArrayOne] = "some data";
console.log(dictionary[keyArrayTwo]); //Console returns 'some data'
我知道我可以使用数组代替我的字典对象,并且只是迭代和比较,但希望利用更快的查找。
关于更多信息,我对构成键的第一个元素的对象一无所知(它可以是任何东西),但第二部分始终是一个字符串。
有什么方法可以实现我的目标吗?
【问题讨论】:
-
两个数组都是 ["objectObject","label"]。如果您不需要安全地包含“valueOf”、“proto”等键,只需在需要时使用对象和 Object.keys(obj) 来获取键数组。跨度>
-
啊,谢谢您的回复。我在对象问题上与您同在;问题是我将对象用作键的任何部分,而不是特别是数组。恐怕我只是在为 Object.keys(obj) 建议而苦苦挣扎。你能指出它如何适合我发布的 sn-p 吗?谢谢。
标签: javascript dictionary key