2016-10-29 60 views
-1

我有以下代碼,猜測字符串不會被替換出於某種原因,如果我嘗試手動agreements.replace('{customername}', 'some string');一切工作正常。字符串替換回路

var keywords = [ 
    { 
     key: '{customername}', 
     desc: 'Customer Name', 
     map: 'user_name' 
    }, 

    { 
     key: '{vesselname}', 
     desc: 'Customer Vessel Name', 
     map: 'vessel_name' 
    } 
    ]; 

    var parseData = { 
    user_name: "Some name", 
    vessel_name: "Some Vessel", 
    spot_title: "My Spot", 
    today: new Date().toDateString() 
    }; 

    var agreements = "{customername}, some customer, {vesslname} -> here"; 

    for(var i = 0; i < keywords.length; i++) { 
    console.log(keywords[i]['key'], parseData[keywords[i]['map']]); 

    agreements.replace(
     keywords[i]['key'], 
     parseData[keywords[i]['map']] 
    ); 
    } 

    alert(agreements); 

請忽略我加入一些細節,以及計算器使得它的要求,有趣的......

+0

'.replace'返回新的字符串,不會替換原始字符串。把它分配回 – Rajesh

+0

@Rajesh哦,來吧,呵呵。 =) – dud3

+0

@Rajesh謝謝,這只是工作。 – dud3

回答

0

改變代碼如下:

agreements = agreements.replace(
 
     keywords[i]['key'], 
 
     parseData[keywords[i]['map']] 
 
    );

+0

只是一個指針,你不應該回答問題有明顯的錯誤。而是已經回答並分享鏈接的搜索帖子。很快,你將獲得投票結束的權利。一旦你有他們,只需將其標記爲重複。另外,如果它沒有太大的麻煩,請刪除答案。我知道它沒有錯,但是這個問題沒有必要。 – Rajesh