【发布时间】:2017-03-12 03:34:21
【问题描述】:
我有以下代码,如果我手动尝试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);
请忽略我正在添加更多细节,stackoverflow 使它成为一个要求,有趣...
【问题讨论】:
-
.replace返回新字符串并且不替换原始字符串。只需将其分配回去 -
@Rajesh 哦,来吧,呵呵。 =)
-
@Rajesh 谢谢,刚刚成功。
-
没关系。另外,我已要求删除答案。完成后,请删除问题,因为它不会对门户增加太多
-
当然。 js不一致吗?至少在我看来,对数组进行排序确实会改变实际数组,例如:
arr = [3, 2, 1]; arr.sort(); console.log(arr);输出:[1, 2, 3],但str = "a b c"; str.replace('a', 'z');不会改变原始变量。
标签: javascript arrays replace str-replace