Javascript 如果一个地图值是另一个地图的键,则搜索该地图值
在javascript中,我有两个映射 map1={a:1,b:2,c:3,d:4,e:5}; map2={td:a,bd:c,sd:e} 现在我需要搜索map2的值,如果它是map1的键,那么它就是(a,b,e),然后用map1中相应的值更新map2的值 示例-map2[td]=a和map[a]=1,然后我想更新map2[td]=1。谁能帮我找到一个算法。你可以用一个循环Javascript 如果一个地图值是另一个地图的键,则搜索该地图值,javascript,search,map,key,key-value,Javascript,Search,Map,Key,Key Value,在javascript中,我有两个映射 map1={a:1,b:2,c:3,d:4,e:5}; map2={td:a,bd:c,sd:e} 现在我需要搜索map2的值,如果它是map1的键,那么它就是(a,b,e),然后用map1中相应的值更新map2的值 示例-map2[td]=a和map[a]=1,然后我想更新map2[td]=1。谁能帮我找到一个算法。你可以用一个循环 Object.keys(map2).forEach(function (d, i) { map2[d] = map
Object.keys(map2).forEach(function (d, i) {
map2[d] = map1[map2[d]];
})
您可能想考虑如果属性继承,尽管
微不足道。您尝试过什么?我不熟悉多个映射上的操作。这仅在ECMAScript 5+中受支持。我们在这里使用的是spider monkey javascript引擎。好吧。@cgatian几乎是您关心的任何浏览器。您可以使用hasOwnProperty()
检查继承的属性。但这没关系,因为OP使用的是非常普通的对象。@bits这不是必须的,for(var key in{})k;//未定义
这取决于对象-我提到可能需要考虑继承属性,但是是的,hasOwnProperty
将是在这些情况下检查的方法。是的,不是必须
,我同意并更改了我的上一条评论。如果你也真的担心继承属性,您可能还希望通过Object.prototype
调用它,例如var checkOwn=Object.prototype.hasOwnProperty.bind(testObj);checkOwn(someKey)代码>
var key;
for (key in map2)
if (map2[key] in map1)
map2[key] = map1[map2[key]];