js替换字符串中的空格方法

1,492

方法非常多,正则、遍历替换...。

方法一

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'))