如何解决变量作为 Javascript 中的条件
我正在尝试创建基于性别的简单名称生成器,我首先编写了创建性别的函数
function getGender () {
var genders = ["Female","Male"]
var gender = genders[Math.floor(Math.random() * genders.length)]
return gender
}
function getName() {
if (gender = ["Male"]) {
getFullName()
} else {
getFemaleFullName()
}
}
但是 console.log 中的结果仍然是未定义的,但是对于其他函数,当我在 console.log 中调用它们时,它们会写下预期的结果。
解决方法
查看评论:
var genders = ["Female","Male"];
let gender = "";
function getGender () {
gender = genders[Math.floor(Math.random() * genders.length)];
}
function getName() {
// === is used to test strict equality
// and you need to test for the string
// that was in the array,not an array
// that contains a string.
if (gender === "Male") {
console.log("Male was chosen.");
} else {
console.log("Female was chosen.");
}
}
getName(getGender());
它显示未定义,因为你没有返回那个返回值的函数,你只是调用了那个函数
function getName() {
if (gender = ["Male"]) {
getFullName()
} else {
getFemaleFullName()
}
}
所以 console.log 没有得到任何价值,你可以这样做
function getName() {
if (gender = ["Male"]) {
return getFullName()
} else {
return getFemaleFullName()
}
}
这是我给你的代码
function getGender() {
const genders = ['Female','Male'];
const gender = genders[Math.floor(Math.random() * genders.length)];
return gender;
}
function getFullName() {
return 'Male';
}
function getFemaleFullName() {
return 'Female';
}
function getName() {
if (getGender() == ['Male']) {
return getFullName();
} else {
return getFemaleFullName();
}
}
console.log(getName());
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。