function kebabToSnake(string){
var replacedString = string;
for(i = 0; i < string.length; i++){
if(string[i] === "-"){
replacedString[i] = "_";
}
}
return replacedString;
}
我是js的新手,有人可以解释为什么此代码不起作用吗?
答案 0 :(得分:1)
字符串是不可变的,这意味着您不能将字符分配给字符串的位置。
您可以改用数组,并且只保留所需的字符。稍后,您需要将数组连接到字符串。
function kebabToSnake(string) {
var replacedString = Array.from(string);
for (i = 0; i < string.length; i++){
if (string[i] === "-"){
replacedString[i] = "_";
}
}
return replacedString.join('');
}
console.log(kebabToSnake('abc-def-ghi'));
通过使用Array.from
的映射参数来缩短方法。
function kebabToSnake(string) {
return replacedString = Array
.from(string, c => c === '-' ? '_' : c)
.join('');
}
console.log(kebabToSnake('abc-def-ghi'));
最后是regular expression,它查找单个减号/-/
,并用下划线g
替换所有(对于全局标志为'_'
–全局)。
function kebabToSnake(string) {
return string.replace(/-/g, '_');
}
console.log(kebabToSnake('abc-def-ghi'));