反转字符串(JavaScript)
题目#
个人方法#
分析:由于每个单词反转后的顺序不变,所以我们将该字符串,按照空格分割成独立单词,再反转单词,再拼接
代码:
var reverseWords = function(s) { // 将字符串按空格分成单词,并存入数组中 let arr = s.split(' ') // 遍历数组,将每个单词拆成字母存入数组,再反转,再拼接成单词 let result = arr.map(item => { return item.split('').reverse().join('') }) // 将所有单词用空格连成字符串 return result.split(' ') }
优化:
var reverseWords = function(s) { return s.split(' ').map(item => { return item.split('').reverse().join('') }).join(' ') }; // 这样就没有了 arr 和 result,节省了时间和空间
大佬启示#
之前是先分割成独立单词,再反转单词,再拼接,可是我们用到的
map
方法是比较耗时的,所以优化如下:var reverseWords = function(s) { return s.split('').reverse().join('').split(' ').reverse().join(' ') }
进一步优化为:
// split 的参数也可以是正则表达式,所以用 /\s+/ 来代替原先的空格字符 var reverseWords = function(s) { return s.split('').reverse().join('').split(/\s+/).reverse().join(' ') };
本作品采用《CC 协议》,转载必须注明作者和本文链接