当前位置:首页 > JavaScript

基础js实现句子反转

2026-03-01 16:04:26JavaScript

使用 split 和 reverse 方法

将字符串按空格分割成数组,反转数组后再合并成字符串。这种方法适合简单句子反转。

function reverseSentence(sentence) {
  return sentence.split(' ').reverse().join(' ');
}

处理标点符号

如果需要保留标点符号在单词末尾,可以使用正则表达式分割。

基础js实现句子反转

function reverseSentenceWithPunctuation(sentence) {
  return sentence.split(/(\s+)/).reverse().join('');
}

手动实现反转

不使用内置方法,通过循环手动实现反转。

基础js实现句子反转

function manualReverse(sentence) {
  let words = [];
  let currentWord = '';

  for (let char of sentence) {
    if (char === ' ') {
      words.push(currentWord);
      currentWord = '';
    } else {
      currentWord += char;
    }
  }
  words.push(currentWord);

  let reversed = '';
  for (let i = words.length - 1; i >= 0; i--) {
    reversed += words[i] + (i > 0 ? ' ' : '');
  }

  return reversed;
}

考虑 Unicode 字符

处理包含表情符号等复杂 Unicode 字符的句子。

function unicodeReverse(sentence) {
  const segments = [...new Intl.Segmenter().segment(sentence)].map(x => x.segment);
  return segments.reverse().join('');
}

性能优化版本

对于超长字符串,使用数组操作可能更高效。

function optimizedReverse(sentence) {
  const words = [];
  let start = 0;

  for (let i = 0; i <= sentence.length; i++) {
    if (sentence[i] === ' ' || i === sentence.length) {
      words.push(sentence.slice(start, i));
      start = i + 1;
    }
  }

  let result = '';
  for (let j = words.length - 1; j >= 0; j--) {
    result += words[j] + (j > 0 ? ' ' : '');
  }

  return result;
}

标签: 句子基础
分享给朋友:

相关文章

vue基础组件实现

vue基础组件实现

Vue 基础组件实现 组件定义 使用 Vue.component 全局注册或局部注册组件。全局注册适合通用组件,局部注册适合特定页面使用的组件。 // 全局注册 Vue.component('my-…

css基础制作按钮

css基础制作按钮

基础按钮样式 使用CSS创建一个基础按钮,设置背景色、文字颜色、边框和圆角: .button { background-color: #4CAF50; /* 绿色背景 */ border:…

css游戏制作基础

css游戏制作基础

基础概念 CSS游戏制作主要利用CSS的动画、过渡、变形等特性,结合HTML结构和JavaScript交互实现简单游戏效果。核心在于通过CSS控制视觉表现,JavaScript处理逻辑。 基本结构…

如何学java基础

如何学java基础

选择合适的入门教材 《Head First Java》和《Java核心技术卷I》是经典的入门书籍,前者以趣味性讲解基础概念,后者系统性强,适合零基础或有一定编程经验的读者。 搭建开发环境 安装J…

0基础如何学习java

0基础如何学习java

选择合适的入门教材或课程 选择一本适合初学者的Java教材,如《Head First Java》或《Java核心技术卷I》。在线课程平台如Coursera、Udemy或B站上的免费教程也是不错的选择,…

如何0基础学习java

如何0基础学习java

了解Java基础概念 Java是一种面向对象的编程语言,具有跨平台特性。学习前需理解以下核心概念: JVM(Java虚拟机):实现跨平台运行的核心组件。 JDK(Java开发工具包):包含…