微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

变量作为 Javascript 中的条件

如何解决变量作为 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 举报,一经查实,本站将立刻删除。