2015-03-02 121 views
0

也許我犯了一個非常愚蠢的錯誤,但在這裏。我想借此[ 'hr' ]並把它變成[ '* * *' ]所以我這樣做:JavaScript:替換數組中的字符串

var hr = jsonml[i] 

console.log(hr) 
// outputs: [ 'hr' ] 
hr.replace(/hr/g, '* * *') 

但我得到這個錯誤:

TypeError: Object hr has no method 'replace'

我在做什麼錯?

+0

'hr'應該是'String'類型的 – 2015-03-02 14:14:03

+0

hr [0] .replace(/ hr/g,'* * *')? – 2015-03-02 14:14:14

回答

3

由於hrArray,嘗試這種

hr[0] = hr[0].replace(/hr/g, '* * *'); 

hr = hr[0].replace(/hr/g, '* * *'); 
+2

'replace()'返回操作的結果,它不會改變你調用它的變量。所以試試'hr = [hr [0] .replace(...)]'。 (假設你想繼續把hr當成一個數組) – 2015-03-02 14:17:27

1

小時是含有一個字符串元素的數組。我會做這樣的:

if (hr.length > 0) 
    hr[0] = hr[0].replace(/hr/g, '* * *'); 

編輯: 也許

for (var i = 0; i < hr.length; i++) 
    hr[i] = hr[i].replace(/hr/g, '* * *'); 

如果HR可以包含多個元素

0

你可以看到對象的typeof:

alert(typeof hr); 

你會看到這個對象是一個數組!

使用本:

for (i = 0; i < hr.length; i++) { 
    var result = hr[i].replace(/hr/g, '* * *'); 
} 
0

僅僅是爲了提供實際做什麼OP請求(無多,不會少)回答的緣故:

hr = [hr[0].replace('hr', '* * *')]; 

無需使用常規在這種情況下替換時的表達。