方法非常多,正则、遍历替换...。
方法一
function fn(str,target) {
return str.replace(/\s/g, target)
}
console.log(fn('how are you', '20%'))
方式二
function fn(str,target) {
let arr = Array.from(str);
for(let i=0; i<arr.length; i++){
if(arr[i] === ' '){
arr[i] = target;
}
}
return arr.join('');
}
console.log(fn('how are you', '20%'))
方式三(双指针)
这个方法有点特别,一般面试时候会用到,还有就是数组长度固定的语言也可以使用这种方式(需要初始化数组时候定一个包含空格长度的数组)。
function fn(str) {
let arr = Array.from(str);
let len = arr.length;
// 空格数量
let count = 0;
for(let i=0;i<arr.length;i++){
if(arr[i] === ' '){
count++
}
}
let leftIndex = len-1;
let rightIndex = len + count*2 -1;
while (leftIndex>=0){
if(arr[leftIndex] === ' '){
arr[rightIndex--] = '0';
arr[rightIndex--] = '2';
arr[rightIndex--] = '%';
}else{
arr[rightIndex] = arr[leftIndex];
rightIndex--;
}
leftIndex--;
}
return arr.join('')
}
console.log(fn('how are you'))