javascript - 访问 JavaScript 对象键和值

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

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

最佳答案

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

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

关于javascript - 访问 JavaScript 对象键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7926875/

相关文章:

javascript - XSS 黑名单——有人知道一个合理的黑名单吗?

javascript - 你如何用 react-router 布局路由来包装故事?

node.js - 使用 Node js 的 azure-graphapi 模块更新用户

javascript - 生成定义常量的 JS 代码是否被认为是不好的做法?

javascript - Vuex 存储未定义

javascript - 带有异步 forEach 循环的磁带 "test exited without ending"错误

node.js - 不要忽略 Atom 中的 node_modules

javascript - 如何将 HTMLTableRowElement 插入表体?

javascript - 运行一个 Promise.all 的 Promise.alls

javascript - 如何确保 React 中不会出现异常错误或任何类型的导致应用程序停止执行或崩溃的错误