使用 JavaScript 从字符串中删除最后一个单词
要从字符串中删除最后一个单词,请使用 lastIndexOf()
方法获取字符串中最后一个空格的索引。 然后使用 substring()
方法获取删除最后一个单词的字符串的一部分。
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语句。
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
方法:
- start 索引 – 要包含在新字符串中的第一个字符的索引
- stop 索引 – 上升到但不包括该索引
我们基本上得到了一个没有原始字符串的最后一个空格和单词的新字符串。
另一种方法是使用 slice
和 join
方法。
从字符串中删除最后一个单词:
- 对字符串调用
split()
方法以获取包含字符串中单词的数组。 - 使用
slice()
方法获取删除最后一个单词的数组的一部分。 - 调用
join()
方法将数组连接成一个字符串。
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
我们在每个空格上拆分字符串以获得包含字符串中单词的数组。
// 👇️ ['hello', 'world']
console.log('hello world'.split(' '))
我们还检查字符串是否包含 1 个或 0 个单词,如果包含则返回。
然后我们使用 Array.slice
方法获取数组中最后一个单词被省略的部分。
我们将以下参数传递给 slice
方法:
- start 索引 – 开始提取的索引(从零开始)。
- stop 索引 – 提取值直到但不包括该索引。 负索引表示距数组末尾的偏移量。
负索引 -1 表示向上但不包括数组的最后一个元素(单词)。
最后一步是使用 Array.join
方法将数组连接成一个字符串。
join
方法采用的参数是一个分隔符,就像 split
方法一样,所以我们再次传递一个空格作为分隔符。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。