【JavaScript数据结构与算法】字符串类(反转字符串中的单词)

简介: 【JavaScript数据结构与算法】字符串类(反转字符串中的单词)

题目:反转字符串中的单词


知识点汇总

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(' ')
}

37c3ba3ee3ec46a7acbad1fd5b3818df.png

2、解法二

export default (str) => {
  // 1.字符串按空格进行分隔,保存数组,数组的元素的先后顺序就是单词的顺序
  // 2.对数组进行遍历,然后每个元素进行反转
  return str.split(' ').map(item => {
    return item.split('').reverse().join('')
  }).join(' ')
}

4fd8dfed54044a4084e84dfefd16f68d.png

3、解法三

export default (str) => {
  // 1.字符串按空格进行分隔,保存数组,数组的元素的先后顺序就是单词的顺序
  // 2.对数组进行遍历,然后每个元素进行反转
  // 3.\s 表示空格
  return str.split(/\s/g).map(item => {
    return item.split('').reverse().join('')
  }).join(' ')
}

9c1f7f102c974c689948e47b775cea64.png

4、解法四

export default (str) => {
  // 1.字符串按空格进行分隔,保存数组,数组的元素的先后顺序就是单词的顺序
  // 2.对数组进行遍历,然后每个元素进行反转
  // 3.[]表示可选项,\w表示字符,'表示测试用例中的符号,+表示大于一次
  return str.match(/[\w']+/g).map(item => {
    return item.split('').reverse().join('')
  }).join(' ')
}

c7b1825f1cf74f179398e49d42a7c922.png


相关文章
|
9天前
|
JSON JavaScript 前端开发
若依修改,若依如何发送get和post请求,发送数据请求的写法,若依请求的API在src的api文件下,建立请求的第一步,在API中新建一个文件,第二步新建JavaScript文件
若依修改,若依如何发送get和post请求,发送数据请求的写法,若依请求的API在src的api文件下,建立请求的第一步,在API中新建一个文件,第二步新建JavaScript文件
|
9天前
|
算法 JavaScript
JS 【详解】树的遍历(含深度优先遍历和广度优先遍历的算法实现)
JS 【详解】树的遍历(含深度优先遍历和广度优先遍历的算法实现)
13 0
JS 【详解】树的遍历(含深度优先遍历和广度优先遍历的算法实现)
|
10天前
|
JavaScript
js中readAsDataURL的意思,可以用于浏览器预览图像文件或者转成base64字符串
js中readAsDataURL的意思,可以用于浏览器预览图像文件或者转成base64字符串
js中readAsDataURL的意思,可以用于浏览器预览图像文件或者转成base64字符串
|
9天前
|
算法 JavaScript
JS 【详解】二叉树(含二叉树的前、中、后序遍历技巧和算法实现)
JS 【详解】二叉树(含二叉树的前、中、后序遍历技巧和算法实现)
18 0
|
9天前
|
算法 JavaScript
JS 【算法】二分查找
JS 【算法】二分查找
11 0
|
9天前
|
JavaScript 索引
js 类数组 转 数组
js 类数组 转 数组
11 0
|
10天前
|
JavaScript
JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
|
10天前
|
JavaScript
Js,定义数组的方法,let 数组名 = [数据1,数据2,........,数据n],取值方法,数组名[x],arr[0],let sum sum = sum + arr[0],求和的写法,平均值
Js,定义数组的方法,let 数组名 = [数据1,数据2,........,数据n],取值方法,数组名[x],arr[0],let sum sum = sum + arr[0],求和的写法,平均值
|
10天前
|
JavaScript
js 简易对象转字符串后恢复为简易对象(如 ^a=$1^b=2转对象)
js 简易对象转字符串后恢复为简易对象(如 ^a=$1^b=2转对象)
8 0
前后端数据交互,request.js文件添加拦截器的写法,数据请求失败后的固定写法
前后端数据交互,request.js文件添加拦截器的写法,数据请求失败后的固定写法