1. 正则表达式
2. 遍历清理
function trim(str) {
let arr = []
let space = 0
for (let i=0, len=str.length; i<len; i++) {
if (str[i] === ' ') { // 判断当前字符是否为空格
if (arr.length === 0) { // 判断arr是否已填充,这招可以删除字符串左空格
continue
}
space ++ // else 记录空格数(不直接填充进数组,因为我还不知道这个空格在中间还是在尾部,所以这招能删尾部空格)
} else { // 当前字符不是空格
if (space) { // 发现space不是0,且当前字符不是空格,意思是刚才那些空格不是尾部的
arr.push(...Array(space).fill(' ')) // 生成space个空格
}
space = 0 // 回置为0
arr.push(str[i]) // 把当前字符推入数组
}
}
console.log(arr)
return arr.join('') // 数组转字符串
}
trim(' abc yyyu s sd ') // 返回 'abc yyyu s sd'