在JavaScript中映射值的简单快捷方法

时间:2014-03-07 17:25:41

标签: javascript

我想将桌面网站的类别列表映射到匹配的移动类别。 需要在每个页面上使用JavaScript在客户端上完成,因此它应该很安静。

所以我从这开始:

var mapDesktop2Mobile = [{"news":"panorama"}, {"local":"someothercat"}];

现在我想要返回“全景”,如果我的桌面类别是“新闻”。

我怎样才能获得价值?

2 个答案:

答案 0 :(得分:4)

要快速,你不应该将对象(它充当字典)嵌套在一个数组中,而只是使用一个对象:

var mapDesktop2Mobile = {"news":"panorama", "local":"someothercat"};

此时您可以通过以下方式获取值:

mapDesktop2Mobile["news"]

如果您需要更复杂对象的字典,可以使用 UNIQUE 属性的值作为键,如下所示:

var complexDictionary = {
    "key01" : { "name" : "key01", "property1" : 1, "property2" : 4 },
    "key02" : { "name" : "key02", "property1" : 2, "property2" : 3 },
    "key03" : { "name" : "key03", "property1" : 3, "property2" : 2 },
    "key40" : { "name" : "key40", "property1" : 4, "property2" : 1 }
};

重复属性作为密钥的事实应该是无关紧要的,你不会分配更多的内存并充分利用VM实现的全部速度(主要是使用散列,存储桶和本机平台代码 - 你可以我希望得到更快的速度。

答案 1 :(得分:2)

为什么要为地图使用数组?别。使用具有多个属性的对象。

var mapDesktop2Mobile = {
    "news":"panorama",
    "local":"someothercat"
};

然后,您只需执行mapDesktop2Mobile.news(或mapDesktop2Mobile['news'])。