使用 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,如果是,我们返回字符串,而不删除任何单词。
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 索引 – 提取值直到但不包括该索引。 负索引表示距数组末尾的偏移量。
最后一步是使用 Array.join 方法将数组连接成一个字符串。
join 方法采用的参数是一个分隔符,就像 split 方法一样,所以我们再次传递一个空格作为分隔符。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。