正如 bluetoft 在此答案中所说,在 Javascript 中,您可以改用普通对象。但是,您应该注意它们之间的一些差异:
首先,Dictionary的键可以是任何类型:
var dict = new ActiveXObject('Scripting.Dictionary');
dict(5) = 'Athens';
console.log(dict('5')); //prints undefined
而用于 Javascript 对象键的任何值都将首先转换为字符串:
var obj = {};
obj[5] = 'Athens';
console.log(obj['5']); // prints 'Athens'
来自MDN:
请注意,方括号符号中的所有键都转换为字符串类型,因为 JavaScript 中的对象只能将字符串类型作为键类型。例如,在上面的代码中,当 key obj 添加到 myObj 时,JavaScript 会调用 obj.toString() 方法,并将这个结果字符串作为新的 key。
其次,可以使用CompareMode属性设置Dictionary以将不同大小写的键视为相同的键:
var dict = new ActiveXObject('Scripting.Dictionary');
dict.CompareMode = 1;
dict('a') = 'Athens';
console.log(dict('A')); // prints 'Athens'
Javascript 密钥访问[]
不支持这一点,如果您想将不同大小写的密钥视为相同,则必须在每次读取或写入之前将潜在密钥转换为小写或大写。
对于您的特定情况,这些差异都不重要,因为键是数字字符串 (1),没有大小写 (2)。