访问JavaScript Object键和值

时间:2011-10-28 08:32:36

标签: javascript node.js

我正在编写一个映射器,用于识别字符串中的单词并用另一个单词替换它们。就我而言,是一个具有实际目录位置的位置标识符。


我的问题位于第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;
}

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

1 个答案:

答案 0 :(得分:1)

字符串在Javascript中是不可变的,因此String.replace()不能修改str,它会返回一个执行了替换的新String。变化

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