Javascript替换数组中元素的字符

时间:2016-09-21 19:03:39

标签: javascript arrays

我正在尝试替换字符串数组中的字符。

到目前为止,我有这个:

stuff= ["uyuuyu", "76gyuhj***", "uiyghj", "56tyg", "juijjujh***"];

for(var i = 0; i < stuff.length; i++)
{
    if(stuff[i].indexOf('***') != -1)
    {
        // this is where i guess the replacing would go
    }
}

我发现我可以使用此代码显示数组中的元素有字符***现在想要用数字替换***字符,以便它输出一个新数组(相同的数组)但修改后的内容如下:

  stuff= ["uyuuyu", "76gyuhj0", "uiyghj", "56tyg", "juijjujh0"];

我似乎无法弄清楚如何替换该数组中的字符而不影响数组的其余部分

4 个答案:

答案 0 :(得分:7)

如果要替换.replace(/\*\*\*/g, '0')的多次出现,也请考虑***。 (以下代码仅替换每个字符串中的第一个匹配项。)

stuff= ["uyuuyu", "76gyuhj***", "uiyghj", "56tyg", "juijjujh***"];

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

console.log(stuff);

请注意,无需检查indexOf。如果子字符串不存在,replace只会改变任何内容,因此您只需将replace应用于每个字符串。

答案 1 :(得分:5)

您可以使用javascript map,如下所示

 var newStuff =stuff.map(function(item,index){
  return item.replace('***','0')

});

console.log(newStuff) //["uyuuyu", "76gyuhj0", "uiyghj", "56tyg", "juijjujh0"]
带箭头功能的 es2015(es6)

var newStuff = stuff.map(item => item.replace('***','0'));

答案 2 :(得分:1)

var stuff= ["uyuuyu", "76gyuhj***", "uiyghj", "56tyg", "juijjujh***"];

for(var i = 0; i < stuff.length; i++)
{
    if(stuff[i].indexOf('***') != -1)
{
        stuff[i] = stuff[i].replace('***','0')
    // this is where i guess the replacing would go
}
console.log(stuff[i]);
}

答案 3 :(得分:0)

这很简单。使用replace函数修改字符串

stuff= ["uyuuyu", "76gyuhj***", "uiyghj", "56tyg", "juijjujh***"];

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