【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


相关文章
|
1天前
|
JavaScript 数据处理 索引
js字符串截取
js字符串截取
10 0
|
1天前
|
JavaScript
js中readAsDataURL的意思,可以用于浏览器预览图像文件或者转成base64字符串
js中readAsDataURL的意思,可以用于浏览器预览图像文件或者转成base64字符串
js中readAsDataURL的意思,可以用于浏览器预览图像文件或者转成base64字符串
|
3天前
|
JavaScript 前端开发 索引
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(三)
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(三)
9 1
|
1天前
|
JavaScript
JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
|
1天前
|
JavaScript
js 简易对象转字符串后恢复为简易对象(如 ^a=$1^b=2转对象)
js 简易对象转字符串后恢复为简易对象(如 ^a=$1^b=2转对象)
7 0
|
2天前
|
存储 JavaScript 前端开发
|
3天前
|
JavaScript 前端开发
JavaScript编码之路【ES6新特性之Class类】(二)
JavaScript编码之路【ES6新特性之Class类】(二)
6 0
|
3天前
|
JavaScript 前端开发
JavaScript编码之路【ES6新特性之Class类】(一)
JavaScript编码之路【ES6新特性之Class类】(一)
9 0
|
3天前
|
JavaScript 前端开发 索引
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(一)
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(一)
7 0
|
3天前
|
存储 JavaScript 前端开发
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(二)
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(二)
6 0