我有一种情况,我想创建从元组到整数的映射。在Python中,我会简单地使用一个元组(a,b)
作为字典的关键,
JavaScript 有元组吗?我找到(a,b)
在 javascript 中作为表达式只返回 b (最后一项)。显然这是从C继承的。
所以,作为一种解决方法,我想我可以使用数组来代替,
my_map[[a,b]] = c
我在 Firebug 控制台上尝试过,它似乎有效。这是一个好方法吗?
我想到的另一种选择是从元组中创建一个字符串
my_map[""+a+":"+b] = c
那么问题来了:这些方法有什么问题吗?有没有更好的办法?
EDIT:
小澄清:在我的例子中,a、b、c 都是整数
EcmaScript 不区分按名称或按名称索引属性[]
, eg.
a.name
从字面上来说相当于
a["name"]
唯一的区别是数字等在命名属性访问中不是有效的语法
a.1
a.true
等等都是无效语法。
唉,所有这些索引机制都是相同的原因是因为在 EcmaScript 中all属性名称是字符串。例如。
a[1]
被有效地解释为
a[String(1)]
这意味着在您的示例中您执行以下操作:
my_map[[a,b]] = c
这变成了
my_map[String([a,b])] = c
这本质上与您的第二个示例所做的相同(但是根据实现,它可能会更快)。
如果您想要真正的值关联查找,您将需要在 js 语言之上自己实现它,并且您将失去良好的 [] 样式访问:-(
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)