JavaScript Objectのキーと値の両方にアクセスする

私は、文字列内の単語を特定し、それらを別の単語に置き換えるマッパーを作成しています。私の場合、実際のディレクトリの場所を持つ場所識別子。


My Problem is on line 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

1 答え

ストリングは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;
}
1
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript