1

任务说明

你在这个活动中的任务是创建一个函数,通过检查一个人的年龄来检查他们是否足够大,可以投票。此函数称为 isOldEnoughToVote(age),并具有以下规范: 它接受一个名为 age 的参数,表示该人的年龄。它检查年龄是否大于或等于 18。如果基于该比较返回 true 或 false。

这是我到目前为止所写的,但它说结果未定义,我想知道为什么。

let response;
var age = 18
// Add your code here
function isOldEnoughToVote(age) {
 if (age >= 18){
   result; 'true'
 }else{
   result; 'false'
 } 
   
4

4 回答 4

2

几个错别字:;应该是=并且您实际上应该返回一个布尔值,而不是字符串值:

function isOldEnoughToVote(age) {
  return age >= 18;
} 

console.log(isOldEnoughToVote(17)); // false
console.log(isOldEnoughToVote(18)); // true

或者,如果您喜欢更多箭头功能

const isOldEnoughToVote = (age) => age >= 18;

// The first => is an arrow function's "Fat Arrow"
// The second >= is an greater-or-equal operator

console.log(isOldEnoughToVote(17)); // false
console.log(isOldEnoughToVote(18)); // true

关于你的代码,还有那个response变量,但你从来没有给它分配任何东西,而是你试图用它做一些事情result; 'true'

如果你真的需要返回两个字符串 "true""false"你可以这样做:

function isOldEnoughToVote(age) {
  if (age < 18) {
    return "false";
  } else {
    return "true";
  }
} 

console.log(isOldEnoughToVote(17)); // "false"
console.log(isOldEnoughToVote(18)); // "true"

或者通过使用箭头函数和三元运算符 ?:

const isOldEnoughToVote = (age) => age < 18 ? "false" : "true";

console.log(isOldEnoughToVote(17)); // "false"
console.log(isOldEnoughToVote(18)); // "true"

或者您可以使用 .toString() 将布尔值转换为字符串:

const isOldEnoughToVote = (age) => (age >= 18).toString();

console.log(isOldEnoughToVote(17)); // "false"
console.log(isOldEnoughToVote(18)); // "true"

但我仍然认为你的任务应该是返回一个布尔值,而不是一个字符串:)

于 2021-07-19T16:09:39.000 回答
1

该错误意味着result函数中的变量未定义。

不过,您根本不需要这样做,直接返回布尔值。

function isOldEnoughToVote(age) {
  if (age >= 18) {
    return true;
  } else {
    return false;
  }
}

在上面,您不需要,else因为它是唯一的其他结果。所以你可以这样做:

function isOldEnoughToVote(age) {
  if (age >= 18) {
    return true;
  }
  return false;
}

或者您可以更简单地返回比较的结果。

function isOldEnoughToVote(age) {
  return age >= 18;
}
于 2021-07-19T16:17:32.523 回答
0

let response;
var age = 18
// Add your code here
function isOldEnoughToVote(age) {
 if (age >= 18){
   return true;
 } else {
   return false;
 } 
}

console.log(isOldEnoughToVote(18));

console.log(isOldEnoughToVote(8));

于 2021-07-19T16:09:54.130 回答
0

您的代码示例使用result; 'true'(例如)来指示true结果。这没有任何作用——事实上它根本不正确。

相反,它应该使用return true

让回应;

function isOldEnoughToVote(age) {
  if (age >= 18) {
    return true;
  } else {
    return false;
  }
}

console.log(isOldEnoughToVote(10));
console.log(isOldEnoughToVote(18));
console.log(isOldEnoughToVote(50));

但是,这可以通过返回结果进一步简化age >= 18

function isOldEnoughToVote(age) {
  return age >= 18;
}

console.log(isOldEnoughToVote(10));
console.log(isOldEnoughToVote(18));
console.log(isOldEnoughToVote(50));

于 2021-07-19T16:09:19.623 回答