2016-10-29 59 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