用‘%20’替换空格
var replaceBlank = (charArr)=> {if (!charArr || charArr.length ===0) return var len = charArr.lengthlet spaceLen = 0for (let i = 0; i < len; i++) {if (charArr[i] === ' ') {spaceLen++}}var extraLen = spaceLen * 2 // '' -> 20% 每一个空格需要增加2个charArr.length = len + extraLenconsole.log(charArr.length, 'len')let originalIndex = len - 1let newIndex = charArr.length - 1console.log(originalIndex, newIndex, '123')// 新老指针同时移动,要保证都在数组的最后一位while(originalIndex>=0 && newIndex > originalIndex) {if (charArr[originalIndex] !== ' ') {// 注意 a-- 与 --a的区别// charArr[newIndex--] = charArr[originalIndex--]charArr[newIndex--] = charArr[originalIndex]// charArr[originalIndex] = ''console.log(charArr.join(''), charArr[15], '1')} else {charArr[newIndex--] = '0'charArr[newIndex--] = '2'charArr[newIndex--] = '%'console.log(charArr.join(''), '2')// originalIndex--}originalIndex--}console.log(charArr)}replaceBlank('we are happy'.split(''))