gpt4 book ai didi

Javascript - 通过循环从字母数字字符串中提取字母

转载 作者:行者123 更新时间:2023-12-03 01:10:01 25 4
gpt4 key购买 nike

大家好,StackOverflow 的 friend 们,

我的期望:
删除字符串“23Ka5X”的数字。循环计算长度,if 语句将字母提取到数组 letterMemory 中。当字符串中没有字母时,会显示消息“哦,没有数字!”应该是输出。
我遇到了什么:
我已经为此工作了一段时间,但我找不到我的错误。我不知道我是否错过了一个简单的细节,或者搞砸了。我的感觉和控制台输出:

var letterMemory = [];
function orderMsg(mixedMsg) {
for (var loopString = 0; loopString < mixedMsg.length; loopString++); {
if (isNaN(parseInt(mixedMsg.charAt[loopString]))); {
letterMemory.push(mixedMsg.charAt[loopString]);
return letterMemory;
} if (!isNaN(parseInt(mixedMsg.charAt[loopString]))) {
return "oh no numbers!";
}
}
}
console.log(orderMsg("23Ka5X"));

我觉得问题是试图通过letterMemory.push(mixedMsg.charAt[loopString])将任何字母插入数组letterMemory并不像我想象的那样工作。

我将非常感谢您的帮助!

我通过 .replace() 找到了一个简单的解决方案,但我真的想让它与循环和 if 语句一起使用,因为循环与 if 语句相结合是我最新的 freecodecamp 类(class),我想在这方面做得更好。

最佳答案

固定代码

function orderMsg(mixedMsg){
var letterMemory = []
for (var loopString = 0; loopString < mixedMsg.length; loopString++){
if (isNaN(mixedMsg[loopString])){
letterMemory.push(mixedMsg[loopString])
}
}

if (letterMemory.length){
return letterMemory
} else {
return 'oh no numbers!'
}
}

问题是

  1. for 循环没有执行,因为您用 ; 终止了它。在最后。
  2. charAt 是一个函数,因此您可以执行 string.charAt(index),也可以简单地说 string[index]。
  3. 您在 for 循环中使用了 return 语句,因此即使 for 循环运行(末尾没有分号),它也只会运行一次。
  4. 另一个问题是变量 letterMemory 是在函数外部声明的,这意味着如果您调用此函数两次,它将使用相同的 letterMemory 数组。

-答案结束-

附加阅读:您可以使用 split , filterternary operator将函数压缩如下..

function orderMsg(mixedMsg){
const letterMemory = mixedMsg.split('').filter(isNaN)
return letterMemory.length ? letterMemory : 'oh no numbers!'
}

关于Javascript - 通过循环从字母数字字符串中提取字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52239116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com