如何用代码提取字符串的最后一个单词?现有代码仅能提取首词
提取字符串最后一个单词的字符数组实现方法
这里提供几种实用的实现方式,适配你的需求:
方法一:反向遍历(与原代码逻辑对应)
和你提取第一个单词的正向遍历思路呼应,改为从字符串末尾反向遍历,收集字符后反转得到正确顺序:
function getLastWordChars(str) { var lastWordChars = []; var data = str.split(""); // 从字符串末尾开始遍历 for (var i = data.length - 1; i >= 0; i--) { if (data[i] === ' ') { break; } lastWordChars.push(data[i]); } // 反转数组得到正确顺序 return lastWordChars.reverse(); } var result = getLastWordChars('amrit shahi'); console.log(result); // 输出 ['s', 'h', 'a', 'h', 'i'] document.write(result);
方法二:分割单词数组(简洁直观)
直接按空格分割字符串得到单词数组,取最后一个单词再拆分为字符数组:
function getLastWordChars(str) { var words = str.split(" "); var lastWord = words[words.length - 1]; return lastWord.split(""); } var result = getLastWordChars('amrit shahi'); console.log(result); // 输出 ['s', 'h', 'a', 'h', 'i'] document.write(result);
方法三:定位最后一个空格(兼容无空格场景)
通过lastIndexOf找到最后一个空格的位置,截取对应子串后转成字符数组,还能处理字符串中没有空格的情况:
function getLastWordChars(str) { var lastSpaceIndex = str.lastIndexOf(' '); // 无空格时直接取整个字符串 var lastWord = lastSpaceIndex === -1 ? str : str.slice(lastSpaceIndex + 1); return lastWord.split(""); } var result = getLastWordChars('amrit shahi'); console.log(result); // 输出 ['s', 'h', 'a', 'h', 'i'] document.write(result);
内容的提问来源于stack exchange,提问作者AMRIT SHAHI
相关产品推荐
相关产品推荐

