首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Javascript中缩短大字符串而不裁剪单词并保存到数组中

在Javascript中,可以使用以下方法来缩短大字符串而不裁剪单词并保存到数组中:

  1. 使用正则表达式和split()方法:可以使用正则表达式将字符串按照空格分割成单词数组,然后根据指定的长度将单词拼接成新的字符串。代码示例如下:
代码语言:txt
复制
function shortenString(str, maxLength) {
  if (str.length <= maxLength) {
    return [str];
  }
  
  const words = str.split(/\s+/); // 使用正则表达式按照空格分割字符串
  let shortenedString = '';
  let currentLength = 0;
  const result = [];
  
  for (let i = 0; i < words.length; i++) {
    if (currentLength + words[i].length <= maxLength) {
      shortenedString += words[i] + ' ';
      currentLength += words[i].length + 1;
    } else {
      result.push(shortenedString.trim());
      shortenedString = words[i] + ' ';
      currentLength = words[i].length + 1;
    }
  }
  
  result.push(shortenedString.trim());
  return result;
}

const longString = "This is a long string that needs to be shortened without cutting words and saved into an array.";
const maxLength = 20;
const shortenedArray = shortenString(longString, maxLength);
console.log(shortenedArray);

上述代码中,我们首先将字符串按照空格分割成单词数组。然后,我们使用一个循环来遍历单词数组,将单词逐个拼接成新的字符串,并根据指定的最大长度进行判断。如果当前拼接的字符串长度不超过最大长度,则继续拼接;否则,将当前拼接的字符串保存到结果数组中,并重新开始拼接新的字符串。最后,将最后一个拼接的字符串也保存到结果数组中。最终,返回结果数组。

  1. 使用递归方法:可以使用递归方法来逐步缩短字符串,直到满足指定的长度要求。代码示例如下:
代码语言:txt
复制
function shortenString(str, maxLength) {
  if (str.length <= maxLength) {
    return [str];
  }
  
  let shortenedString = str.substring(0, maxLength);
  let lastSpaceIndex = shortenedString.lastIndexOf(' ');
  
  if (lastSpaceIndex !== -1) {
    shortenedString = shortenedString.substring(0, lastSpaceIndex);
  }
  
  const remainingString = str.substring(shortenedString.length).trim();
  const result = [shortenedString];
  
  return result.concat(shortenString(remainingString, maxLength));
}

const longString = "This is a long string that needs to be shortened without cutting words and saved into an array.";
const maxLength = 20;
const shortenedArray = shortenString(longString, maxLength);
console.log(shortenedArray);

上述代码中,我们首先判断字符串的长度是否小于等于最大长度,如果是,则直接返回包含原字符串的数组。否则,我们使用substring()方法将字符串截取到指定的最大长度,并找到最后一个空格的位置。如果找到了空格,则将截取的字符串重新赋值为截取到空格之前的部分。然后,我们将剩余的字符串继续进行递归调用,直到满足长度要求。最后,将所有截取的字符串保存到结果数组中,并返回结果数组。

这两种方法都可以在Javascript中缩短大字符串而不裁剪单词并保存到数组中。具体使用哪种方法取决于实际需求和性能要求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 万字长文带你走进 JavaScript 的世界

    JavaScript 是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言。虽然它是作为开发 Web 页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。    ♞ 1992年,Nombase 公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名为 : C-- ,后来更名为:ScriptEase    ♞ 1995年,Netscape(网景) 公司,开发了一门客户端脚本语言:LiveScript。后来,请来 SUN 公司的专家,修改 LiveScript,命名为 JavaScript    ♞ 1996年,微软抄袭 JavaScript 开发出 JScript 语言    ♞ 1997年,ECMA(欧洲计算机制造商协会),制定出客户端脚本语言的标准:ECMAScript,统一了所有客户端脚本语言的编码方式。

    02

    JS字符串对象

    在 JavaScript 中,对象是非常重要的知识点。对象可以分为两种:一种是“自定义对象”外一种是“内置对象”。自定义对象,指的是需要我们自己定义的对象,和“自定义函数”是一些道理;内置对象,指的是不需要我们自己定义的(即系统已经定义好的)、可以直接使用的对象“内置函数”也是一样的道理。 作为初学者,我们先学习内置对象,然后在学习 JavaScript 进阶的内容时,再学习自定义对象。在 JavaScript 中,常用的内置对象有4种。 字符串对象: String。 数组对象:Array。 日期对象:Date。数值对象:Math。 这4个对象都有非常多的属性和方法,对于不常用的,我会一笔带过,留出更多篇幅给大家讲解最实用的,这样可以大幅度地提高小伙伴们的学习效率。实际上,任何一门 Web 技术的知识点都非常多,但是我们并不需要把所有的知识点都记住,只需要记住常用的就可以了。因为大部分内容我们都可以它们列为“可翻问知识”(也就是不需要记忆,等需要用的时候再回来翻一翻就可以获取的那部分内容) 在这一章中,我们先来学习一下字符串对象的常用属性和方法。

    02
    领券