使用 JavaScript 从字符串中删除最后一个单词

目录

Remove the Last Word from a String using JavaScript

  1. 使用 JavaScript 从字符串中删除最后一个单词
  2. 使用 String.split() 从字符串中删除最后一个单词
  3. 从字符串中删除最后 2(或 N)个单词

使用 JavaScript 从字符串中删除最后一个单词

要从字符串中删除最后一个单词,请使用lastIndexOf()方法获取字符串中最后一个空格的索引。然后使用该substring()方法获取删除最后一个单词的字符串的一部分。

索引.js
function removeLastWord(str) { const lastIndexOfSpace = str.lastIndexOf(' '); if (lastIndexOfSpace === -1) { return str; } return str.substring(0, lastIndexOfSpace); } console.log(removeLastWord('Hello World')); // 👉️ Hello console.log(removeLastWord('hello')); // 👉️ hello console.log(removeLastWord('one two three')); // 👉️ one two

我们创建了一个可重用的函数来从字符串中删除最后一个单词。

我们做的第一件事是使用
String.lastIndexOf
方法获取字符串中最后一个空格的索引。

lastIndexOf方法返回字符串中最后一次出现的子字符串的索引。如果子字符串不包含在字符串中,则该方法返回
-1

为了涵盖字符串仅包含单个单词(无空格)的情况,我们检查该lastIndexOf方法是否返回-1,如果返回,我们返回字符串,而不删除任何单词。

如果要删除单词,即使字符串包含单个单词,也可以删除if语句。
索引.js
function removeLastWord(str) { const lastIndexOfSpace = str.lastIndexOf(' '); // 👇️ remove this if you want to delete single words too // if (lastIndexOfSpace === -1) { // return str; // } return str.substring(0, lastIndexOfSpace); }

最后一步是使用
String.substring
方法获取字符串中没有最后一个单词的部分。

我们将以下参数传递给该substring方法:

  1. start index – 要包含在新字符串中的第一个字符的索引
  2. 结束索引– 上升到但不包括该索引
我们基本上得到了一个没有原始字符串的最后一个空格和单词的新字符串。

另一种方法是使用slicejoin方法。

使用 String.split() 从字符串中删除最后一个单词

从字符串中删除最后一个单词:

  1. 调用split()字符串上的方法以获取包含字符串中单词的数组。
  2. 使用该slice()方法获取删除最后一个单词的数组的一部分。
  3. 调用将join()数组连接成字符串的方法。
索引.js
function removeLastWord(str) { const words = str.split(' '); if (words.length === 1) { return str; } return words.slice(0, -1).join(' '); } console.log(removeLastWord('Hello World')); // 👉️ Hello console.log(removeLastWord('hello')); // 👉️ hello console.log(removeLastWord('one two three')); // 👉️ one two

我们在每个空格上拆分字符串以获得包含字符串中单词的数组。

索引.js
// 👇️ ['hello', 'world'] console.log('hello world'.split(' '))

我们还检查字符串是否包含1单词0,如果包含则返回。

然后我们使用
Array.slice
方法获取数组中最后一个单词被省略的部分。

我们将以下参数传递给该slice方法:

  • start index – 开始提取的索引(从零开始)。
  • 结束索引– 提取值直到但不包括该索引。负索引表示距数组末尾的偏移量。
负索引-1表示向上,但不包括数组的最后一个元素(单词)。

最后一步是使用
Array.join
方法将数组连接成一个字符串。

join方法采用的参数是一个分隔符,就像split
方法一样,因此我们再次传递一个空格作为分隔符。

从字符串中删除最后 2 个(或 N 个)单词#

从字符串中删除最后 2 个单词:

  1. 使用该split()方法将字符串拆分为单词数组。
  2. 使用该slice方法获取不包括最后 2 项的数组。
  3. 使用该join()方法连接带有空格分隔符的单词。
索引.js
const str = 'one two three four'; const withoutLast2Words = str.split(' ').slice(0, -2).join(' '); console.log(withoutLast2Words); // 👉️ 'one two'

我们使用
String.split
方法将字符串拆分为子字符串数组。

索引.js
const str = 'one two three four'; // 👇️️ ['one', 'two', 'three', 'four'] console.log(str.split(' '));

下一步是使用
Array.slice
方法获取数组中没有最后 2 个元素(单词)的部分。

我们将以下参数传递给该slice方法:

  1. start index – 要包含在新数组中的第一个元素的索引(从零开始)
  2. end index – 提取元素直到但不包括该索引。负索引-2意味着“上升到但不包括数组的最后 2 个元素”
传递一个结束索引参数-2是一样的。我们指示该方法向上移动,但不包括数组的最后 2 个元素。 array.length - 2slice
索引.js
const str = 'one two three four'; console.log(str.split(' ').slice(0, -2)); // 👉️ ['one', 'two']

最后一步是使用
Array.join
方法将单词连接回字符串。

join方法采用的唯一参数是一个分隔符,我们为其提供了一个空格。

结果是一个不包含原始字符串的最后 2 个单词的新字符串。

索引.js
const str = 'one two three four'; const withoutLast2Words = str.split(' ').slice(0, -2).join(' '); console.log(withoutLast2Words); // 👉️ 'one two'