访问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; }