2016-11-14 53 views
-1

我有上百個用戶在列表中,下面就是一個例子列表:字符串替換陣圖

var userList = [ 
 
    { 
 
    "FullName": "test1", 
 
    "UserName": "test1", 
 
    "Email": "[email protected]" 
 
    }, 
 
    { 
 
    "FullName": "test2", 
 
    "UserName": "test2", 
 
    "Email": "[email protected]" 
 
    } 
 
]; 
 
    
 
var userStr = "test1 is doing a test2"; 
 
userList.map((user) => { 
 
\t userStr.replace(RegExp(user.FullName,"gi"), user.Email) 
 
}) 
 

 
console.log(userStr);

測試的字符串返回仍然是相同的,並且不與更換電子郵件。我做的代碼是否優化?

+1

'map'不修改源陣列,它返回一個新的數組代替 – hindmost

回答

0

您需要使用返回的值更新變量。

var userList = [{ 
 
    "FullName": "test1", 
 
    "UserName": "test1", 
 
    "Email": "[email protected]" 
 
}, { 
 
    "FullName": "test2", 
 
    "UserName": "test2", 
 
    "Email": "[email protected]" 
 
}]; 
 

 
var userStr = "test1 is doing a test2"; 
 
userList.forEach((user) => userStr = userStr.replace(RegExp(user.FullName, "gi"), user.Email)) 
 

 
console.log(userStr);