2015-08-14 109 views
0

我被卡住了一點,用js數組替換字符串。我正在嘗試記錄參數,看看發生了什麼,但我錯過了一部分難題。替換JS數組中的字符串而不使用本地替換()方法

fiddle

// - trying to look for substring in array 
// - if match is found 
// - replace substring without using the native method replace(); 

var div = $('.insert'); 

data = ["erf,", "erfeer,rf", "erfer"]; 
data = data.map(function (x) { 
    return /""/g.test(x) ? x.replace(/""/g, "") : x 
}); 

function fakeReplace(data, substr, newstr) { 

//should show ["erf,", "erfeer,rf", "erfer"];  
div.append("data before match replace = " + data); 

    div.append("\<br>"); 
    div.append("substr = " + substr); 
    div.append("\<br>"); 
    div.append("newstr = " + newstr); 
    div.append("\<br>"); 

    return data.split(substr).join(newstr); 
} 

fakeReplace(data, "erf", "blue"); 

//should show ["blue,", "blueeer,rf", "blueer"]; 
div.append("data after fakeReplace is executed = " + data); 
+2

_but是缺少了一塊puzzle_的 - 在控制檯 – Andreas

+1

'分裂>至少錯誤消息()'是一個字符串功能和'data'是一個數組。你想返回一個新的數組替換值,或者你應該首先將數組轉換爲字符串? – Malk

+0

我想用新值返回數組。 – ndesign11

回答

2

你就像在你的函數的字符串處理data。您可以使用map()來返回一個替換每個元素的新數組。

function fakeReplace(data, substr, newstr) { 
    return data.map(function(s) { 
     return s.split(substr).join(newstr); 
    }) 
} 
+0

謝謝!我更新了我的小提琴,看到這讓我更加接近,但數組並沒有換出我的價值觀。 http://jsfiddle.net/dntreply/pc8y5un5/7/ – ndesign11

+1

在這裏你去:http://jsfiddle.net/pc8y5un5/10/和Malk豎起大拇指! – Develoger

+0

w00t Malk,tyvm! – ndesign11

相關問題