我实际上试图替换字符串值
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 !'));
我实际上试图替换字符串值
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 !'));
我想这就是你想要做的?我不确定你为什么要在已经是字符串的东西上调用 .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
有更好的方法来解决这个问题。但出于学术目的,如果你想修复你的算法:
您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 !'));
使用 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 .
您可以使用string.replaceAll()
方法使此任务更清洁!见 MDN
见 =>
const MyFunc = (str) => {
str = str.replaceAll('!','.');
return str;
};
console.log(MyFunc('Mening yurtim ! Men juda faxirlanaman !'));