Javascript 函数是返回数字而不是字母
我正在尝试创建一个函数,该函数将返回字符串中每个单词的最后一个字母,并认为我很接近,但每当调用该函数时,我都会得到一系列数字,而不是我要查找的字母 代码如下:Javascript 函数是返回数字而不是字母,javascript,Javascript,我正在尝试创建一个函数,该函数将返回字符串中每个单词的最后一个字母,并认为我很接近,但每当调用该函数时,我都会得到一系列数字,而不是我要查找的字母 代码如下: function lastLetter(str){ var arr = []; for(var i = 0; i < str.length; i++){ if(str[i] === " " || str[i] === "."){ arr.push((i) - 1);
function lastLetter(str){
var arr = [];
for(var i = 0; i < str.length; i++){
if(str[i] === " " || str[i] === "."){
arr.push((i) - 1);
}
}
return arr;
}
lastLetter("I love bacon and eggs.");
函数lastLetter(str){
var-arr=[];
对于(变量i=0;i
如有任何建议,将不胜感激。谢谢 将值
i-1
推送到数组上。你的意思是推送str.charAt(i-1):
请参阅:
请注意,您的代码并不是真正的防御性代码。如果字符串中的第一个字符处有空格或句点,则引用的是位置-1
处的字符,该位置无效。您可以通过从1
而不是0
循环来解决此问题。在这种情况下,如果字符串以两个空格开头,结果中仍然会有一个空格,但至少不会出现错误。稍好一点的算法版本将测试i-1
是否为有效索引,以及该位置是否存在不是空格或句点的字符
下面是一个可能的解决方案,我认为它解决了这些情况,同时在设置代码时仍然保留代码的结构
函数lastLetter(str){
var-arr=[];
对于(变量i=1;i console.log(最后一封信(“…你喜欢熏肉和鸡蛋吗…”)
将值i-1
推送到数组上。你的意思是推送str.charAt(i-1):
请参阅:
请注意,您的代码并不是真正的防御性代码。如果字符串中的第一个字符处有空格或句点,则引用的是位置-1
处的字符,该位置无效。您可以通过从1
而不是0
循环来解决此问题。在这种情况下,如果字符串以两个空格开头,结果中仍然会有一个空格,但至少不会出现错误。稍好一点的算法版本将测试i-1
是否为有效索引,以及该位置是否存在不是空格或句点的字符
下面是一个可能的解决方案,我认为它解决了这些情况,同时在设置代码时仍然保留代码的结构
函数lastLetter(str){
var-arr=[];
对于(变量i=1;i尝试:
但是,这将出现多字节字符问题。尝试:
但是,这对于多字节字符会有问题。您正在推送整数值i-1
而不是字符str[i-1]
您正在推送整数值i-1
而不是字符str[i-1]
您正在将索引推送到数组中。您仍然需要访问字符串的i-1
`
函数lastLetter(str){
var-arr=[];
对于(变量i=0;i
您正在将索引推入数组中。您仍然需要访问字符串的i-1
`
函数lastLetter(str){
var-arr=[];
对于(变量i=0;iarr.push(str.charAt(i-1))
代替arr.push(i-1)
(保存最后一个字母的位置,但不保存其值-charAt(position)
会在给定位置为您提供后者
charAt()
:
演示:
函数lastLetter(str){
var-arr=[];
对于(变量i=0;i document.body.innerHTML=lastLetter(“我喜欢熏肉和鸡蛋”);
解决方案和改进版本如下:
使用arr.push(str.charAt(i-1))
代替arr.push(i-1)
(保存最后一个字母的位置,但不保存其值-charAt(position)
会在给定位置为您提供后者
charAt()
:
演示:
函数lastLetter(str){
var-arr=[];
对于(变量i=0;i document.body.innerHTML=lastLetter(“我喜欢熏肉和鸡蛋”);
你在数组中推送数字arr.push((I)-1);
,那么你会期待什么呢。如果字符串带有空格怎么办?重新考虑你的输入算法,比如“foo”
或“bar…”
。你在数组中推送数字arr.push((I)-1)那么你期望什么呢?如果一个字符串带有空格怎么办?重新考虑你的输入算法,比如“foo”
或“bar…”
。哇,太快了!这真的很有帮助!我对编码很陌生,所以很高兴能这么快得到帮助。我真的很感激!哇,太快了!这真的很有帮助!我对编码很陌生,所以很高兴能这么快得到帮助
arr.push(str.charAt(i - 1));
arr.push(str[i - 1]);
` function lastLetter(str){
var arr = [];
for(var i = 0; i < str.length; i++){
if(str[i] === " " || str[i] === "."){
arr.push(str[(i) - 1]);
}
}
return arr;
}
lastLetter("I love bacon and eggs.");