2015-03-02 96 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', '* * *')]; 

无需使用常规在这种情况下替换时的表达。