Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 替换JS中某些字符的所有实例?_Javascript_Iteration - Fatal编程技术网

Javascript 替换JS中某些字符的所有实例?

Javascript 替换JS中某些字符的所有实例?,javascript,iteration,Javascript,Iteration,我试图创建一个简单的函数来替换JS中字符串中某个字符的所有实例。在本例中,我想用o替换所有a 我很确定代码是正确的,但输出仍然是原始字符串 function replaceLetter(string){ for(var i = 0; i < string.length; i++){ if(string[i] == 'a'){ console.log(string[i]); string[i] = 'o' } } return string

我试图创建一个简单的函数来替换JS中字符串中某个字符的所有实例。在本例中,我想用
o
替换所有
a

我很确定代码是正确的,但输出仍然是原始字符串

function replaceLetter(string){
  for(var i = 0; i < string.length; i++){
    if(string[i] == 'a'){
      console.log(string[i]);
      string[i] = 'o'
    }
  }
  return string;
}

replaceLetter('hahaha') // returns 'hahaha'
函数替换字母(字符串){
对于(变量i=0;i

为什么不用o替换a?

您可以使用如下正则表达式:

函数替换字母(str){
返回str.replace(/a/g,'o');
}
var st=替换字母(“哈哈哈”);

控制台日志(st)您可以使用如下正则表达式:

函数替换字母(str){
返回str.replace(/a/g,'o');
}
var st=替换字母(“哈哈哈”);
控制台日志(st),因此对它们的任何更改都不会像您预期的那样反映出来

考虑改用函数:

function replaceLetter(string){
  // This uses a regular expression to replace all 'a' characters with 'o'
  // characters (the /g flag indicates that all should be matched)
  return string.replace(/a/g,'o');
}
,因此,对它们的任何更改都不会像您预期的那样反映出来

考虑改用函数:

function replaceLetter(string){
  // This uses a regular expression to replace all 'a' characters with 'o'
  // characters (the /g flag indicates that all should be matched)
  return string.replace(/a/g,'o');
}

我总是喜欢使用
split()
join()


我总是喜欢使用
split()
join()


假设您想对
循环使用

function replaceLetter(string){
  var result = '';

  for (var i = 0; i < string.length; i++) {
    result += string[i] === 'a' ? 'o' : string[i];
  }
  return result;
}

但是,对于这种特殊情况,在其他答案中显示的regexp解决方案可能更可取。

假设您想对
循环使用

function replaceLetter(string){
  var result = '';

  for (var i = 0; i < string.length; i++) {
    result += string[i] === 'a' ? 'o' : string[i];
  }
  return result;
}

但是,对于这种特殊情况,其他答案中显示的regexp解决方案可能更可取。

字符串是不可变的->这是一个算法设计练习,还是实际的目标是替换子字符串?字符串的可能重复项是不可变的->这是一个算法设计练习,或者目标实际上是替换子字符串?可能重复