访问JavaScript Object键和值

我正在编写一个映射器,它可以识别string中的单词,并用另一个单词replace它们。 在我的情况下,一个位置标识符与实际的目录位置。


我的问题是在第8行: str.replace(x.toString(), keys[x]);

x是预期值,但keys[x]返回undefined

 var keys = { "$processes" : "/processes", "$local_resources" : "/feeds/local" }; function CoreRoute(str){ for (var x in keys){ str.replace(x, keys[x]); } return str; } 

我正在开发节点环境。 但我很确定这是我的逻辑错误。

string在Javascript中是不可变的,所以String.replace()不能修改str,它会返回一个新的String来执行replace。 更改

 str.replace(x, keys[x]); 

 str = str.replace(x, keys[x]); 

结束码:

 var keys = { "$processes" : "/processes", "$local_resources" : "/feeds/local" }; function CoreRoute(str) { for (var x in keys) { str = str.replace(x, keys[x]); } return str; }