个人简介
?个人主页: 前端杂货铺
?♂️学习方向: 主攻前端方向,也会涉及到服务端(Node.js)
?个人状态: 在校大学生一枚,已拿多个前端 offer(秋招)
?未来打算: 为中国的工业软件事业效力 n 年
?推荐学习:?前端面试宝典 ?Vue2 ?Vue3 ?Vue2/3项目实战 ?Node.js?Three.js ?JS版算法
?个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧
【JavaScript版算法】系列文章目录
内容 | 参考链接 |
---|---|
JavaScript 数据结构与算法 | 总目录 |
文章目录
【JavaScript版算法】系列文章目录题目:反转字符串中的单词知识点汇总测试用例1、解法一2、解法二3、解法三4、解法四
题目:反转字符串中的单词
知识点汇总
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(' ')}