javascript - 我想不通的编码挑战
问题描述
我最近遇到了一些我认为很容易完成的事情。情况是这样的:
修复代码以使所有语句都通过。
function myFunction(s) {
var c = s[0];
// if the user enters an uppercase letter, return uppercase
if(c === c.toUpperCase()) {
return "uppercase";
// if the user enters a lowercase letter, return lowercase
} else if(c === c.toLowerCase()) {
return "lowercase";
// if the user enters a number, return digit
} else if(!isNan(c)) {
return "digit";
} else {
return "other";
}
}
通过输入 c === toUpperCase 和 toLowerCase 方法,我可以让前两个工作得很好。但是,当我在 myFunction(1) 中输入一个数字时,它总是会返回一个 typeError。
我不知道为什么。我假设我可能不明白为什么我们将 s 重新分配给 s[0]。
谁能向我解释我需要做什么才能正确获取所有返回值?
解决方案
当您访问输入的第一个字符时,假设您正在传递一个字符串
你可以尝试这样的事情:
function myFunction(s) {
var c = s[0];
// if the user enters an uppercase letter, return uppercase
if( c >= 'A' && c <= 'Z') {
return "uppercase";
// if the user enters a lowercase letter, return lowercase
} else if(c >= 'a' && c <= 'z') {
return "lowercase";
// if the user enters a number, return digit
} else if(!isNaN(c)) {
return "digit";
} else {
return "other";
}
}
样品测试:
myFunction("78")
"digit"
myFunction("%")
"other"
myFunction("S")
"uppercase"
myFunction("d")
"lowercase"
推荐阅读
- python - 如何使用 Python 将子网关联到 Azure 中的网络安全组?
- docker - 无法连接到主机中的 minikube 服务
- flutter - 无法从捕获的文本文件中捕获翻译的文本
- apache-spark - 如何正确分隔列
- python - 并发期货 - 提取文件名以及输出
- teamcity - Teamcity 不会针对 PR 的更改一致地触发构建
- r - 如何将具有大量数据的类从因子更改为最新?
- html - 如何在不链接 a href 的情况下转到关于页面?
- unit-testing - ARM项目中x86上的CMake UnitTest
- sql - 为用户定义的域类型定义排序方案