题目:反转字符串中的单词
知识点汇总
String.prototype.split
split() 方法用于把一个字符串分割成字符串数组(不改变原始字符串)。
String.prototype.match
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
Array.prototype.map
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值(不会对空数组进行检测,不会改变原始数组)。
Array.prototype.reserve
reverse() 方法用于颠倒数组中元素的顺序。
Array.prototype.join
join() 方法用于把数组中的所有元素转换一个字符串,元素是通过指定的分隔符进行分隔的。
测试用例
我们使用题目中的测试用例进行测试
// 引入编码的相对路径 import revertByWorld from '../../code/string/lesson1' // 测试用例(test..expect..toBe 为固定写法) test('revertByWorld:Let\'s take LeetCode contest', () => { expect(revertByWorld("Let's take LeetCode contest")).toBe("s'teL ekat edoCteeL tsetnoc") })
1、解法一
export default (str) => { // 字符串按空格进行分隔,保存数组,数组的元素的先后顺序就是单词的顺序 let arr = str.split(' ') // 对数组进行遍历,然后每个元素进行反转 let result = arr.map(item => { return item.split('').reverse().join('') }) return result.join(' ') }
2、解法二
export default (str) => { // 1.字符串按空格进行分隔,保存数组,数组的元素的先后顺序就是单词的顺序 // 2.对数组进行遍历,然后每个元素进行反转 return str.split(' ').map(item => { return item.split('').reverse().join('') }).join(' ') }
3、解法三
export default (str) => { // 1.字符串按空格进行分隔,保存数组,数组的元素的先后顺序就是单词的顺序 // 2.对数组进行遍历,然后每个元素进行反转 // 3.\s 表示空格 return str.split(/\s/g).map(item => { return item.split('').reverse().join('') }).join(' ') }
4、解法四
export default (str) => { // 1.字符串按空格进行分隔,保存数组,数组的元素的先后顺序就是单词的顺序 // 2.对数组进行遍历,然后每个元素进行反转 // 3.[]表示可选项,\w表示字符,'表示测试用例中的符号,+表示大于一次 return str.match(/[\w']+/g).map(item => { return item.split('').reverse().join('') }).join(' ') }