javascript - 如何使用javascript中的函数更改字符的值?
问题描述
我正在尝试创建一个接收字符并返回数字的函数。
这是我的代码:
function get (char) {
if (char == "A"||"a") {
return char = 5
} else if (char == "B"||"b") {
return char = 4
} else if (char == "C"||"c") {
return char = 3
} else if (char == "D"||"d") {
return char = 2
} else if (char == "F"||"f") {
return char = 0
}
}
但每当我对任何角色运行它时,它总是返回 5。
请提供任何帮助。
解决方案
条件下的每个测试都必须是可以独立运行的完整测试。char == "A"
是,但"a"
不是。使用诸如&&
and之类的逻辑运算符||
不会改变这一点。
此外,当您返回时,您只返回一个值,而不是一个赋值。
代码必须是:
function get (char) {
if (char == "A"|| char == "a") {
return 5;
} else if (char == "B"|| char == "b") {
return 4;
} else if (char == "C"|| char == "c") {
return 3;
} else if (char == "D"|| char == "d") {
return 2;
} else if (char == "F"|| char == "f") {
return 0;
}
}
console.log(get("A"));
console.log(get("b"));
console.log(get("C"));
console.log(get("d"));
console.log(get("f"));
但是,为了简单起见,通常在测试之前将输入转换为大写或小写,然后您只需测试字符串而不是大小写:
function get (char) {
char = char.toLowerCase();
if (char == "a") {
return 5;
} else if (char == "b") {
return 4;
} else if (char == "c") {
return 3;
} else if (char == "d") {
return 2;
} else if (char == "f") {
return 0;
}
}
console.log(get("A"));
console.log(get("b"));
console.log(get("C"));
console.log(get("d"));
console.log(get("f"));
或者,如果您正在寻找一种更紧凑的方式来获得此结果,从而if/then
首先消除对的需求,您可以简单地返回数组中匹配的索引位置。
let scores = ["f","","d","c","b","a"];
function get (char) {
return scores.indexOf(char.toLowerCase());
}
console.log(get("A"));
console.log(get("b"));
console.log(get("C"));
console.log(get("d"));
console.log(get("f"));
推荐阅读
- sql - EXECUTE IMMEDIATE DROP FUNCTION 导致 Oracle SQL Developer 挂起
- node.js - Loopback 3 顺序、偏移量和限制。操作顺序
- java - 为什么停止 SwingWorker 会立即停止它?
- amazon-web-services - 在 AWS Ubuntu EC2 上部署 Dockerized MERN 应用程序。我需要 NGINX 或类似技术吗?
- java - 无法在 Java 中使用 OpenCV 读取图像,涉及 unicode 路径
- mysql - MySQL 查询返回不同的结果
- excel - VBA中的Linest函数
- c# - BFS 和 DFS 使用邻接矩阵 C#
- r - 求解 R 中餐厅顾客类型的百分比
- r - 如果发生某些情况,请更改图表上的数字