0

我实际上试图替换字符串值

const MyFunc = (str) => {
  arr = str.toString()
  for (i = 0; i < arr.length; i++) {
    arr[i] = arr[i].replace('!', '.')
  }

  arr = arr.toString()
  return arr
}

console.log(MyFunc('Mening yurtim ! Men juda faxirlanaman !'));

4

4 回答 4

0

我想这就是你想要做的?我不确定你为什么要在已经是字符串的东西上调用 .toString() 。您也不需要将字符串更改为数组来迭代它们。如果您愿意,可以只在 str.length 上运行 for 循环。

const MyFunc = (str) => {
  return str.replace(/!/g, '.')
}

console.log(MyFunc('Mening yurtim ! Men juda faxirlanaman !'))

如果您查看有关 string.replace() 的文档,为了让它为您更改字符串中的每个值,您必须像这样将您想要替换的字符串传递给它。

/what you want to replace/g

如果你想忽略大小写敏感,你会这样做

/what you want to replace/gi

希望这可以帮助!

于 2021-07-01T17:41:09.247 回答
0

有更好的方法来解决这个问题。但出于学术目的,如果你想修复你的算法:

arr = str.toString()没有将字符串转换为数组。使用.split("")and.join("")代替。

另外,一般清理你的代码:)

const MyFunc = (str) => {
  let arr = str.split("");

  for (let i = 0; i < arr.length; i++) {
    arr[i] = arr[i].replace('!', '.');
  }

  return arr.join("");
}

console.log(MyFunc('Mening yurtim ! Men juda faxirlanaman !'));

于 2021-07-01T17:37:05.127 回答
0

使用 replaceAll

console.log('Mening yurtim ! Men juda faxirlanaman !'.replaceAll('!', '.')); // Mening yurtim . Men juda faxirlanaman .



let text = 'Mening yurtim ! Men juda faxirlanaman !';
let replaced = text.replaceAll('!', '.');
console.log(replaced); // Mening yurtim . Men juda faxirlanaman .

于 2021-07-01T17:36:38.800 回答
0

您可以使用string.replaceAll()方法使此任务更清洁!见 MDN

见 =>

const MyFunc = (str) => {
   str = str.replaceAll('!','.');
  return str;
};

console.log(MyFunc('Mening yurtim ! Men juda faxirlanaman !'));
于 2021-07-01T17:33:21.650 回答