Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调用具有不同参数的函数是';行不通_Javascript - Fatal编程技术网

Javascript 调用具有不同参数的函数是';行不通

Javascript 调用具有不同参数的函数是';行不通,javascript,Javascript,我不明白为什么我没有打印“名字2”。这是我第一次练习Scopes。有什么方法可以更好地发现这些错误,还是只是练习?我已经看了半个小时了,对我来说似乎很完美 // The scope of `random` is too loose const random = Math.floor(Math.random() * 3); const getRandEvent = () => { if (random === 0) { return 'Marathon'; } else

我不明白为什么我没有打印“名字2”。这是我第一次练习Scopes。有什么方法可以更好地发现这些错误,还是只是练习?我已经看了半个小时了,对我来说似乎很完美

// The scope of `random` is too loose 
const random = Math.floor(Math.random() * 3);

const getRandEvent = () => {
  if (random === 0) {
    return 'Marathon';
  } else if (random === 1) {
    return 'Triathlon';
  } else if (random === 2) {
    return 'Pentathlon';
  }
};

// The scope of `days` is too tight 
const getTrainingDays = event => {
  let days;
  if (event === 'Marathon') {
    days = 50;
  } else if (event === 'Triathlon') {
    days = 100;
  } else if (event === 'Pentathlon') {
    days = 200;
  }

  return days;
};
const name = 'Nala';
const name2 = 'Warren'
// The scope of `name` is too tight 
const logEvent = event => {
  console.log(`${name}'s event is: ${event}`);
};

const logTime = days => {
  console.log(`${name}'s time to train is: ${days} days`);
};

const event = getRandEvent();
const days = getTrainingDays(event);
// Define a `name` variable. Use it as an argument after updating logEvent and logTime 


logEvent(name, event);
logTime(name, days);

const event2 = getRandEvent();
const days2 = getTrainingDays(event2);

// Define a `name` variable. Use it as an argument after updating logEvent and logTime 


logEvent(event2, name2);
logTime(days2, name2);
这就是我得到的:

Nala's event is: Marathon
Nala's time to train is: 200 days
Nala's event is: Triathlon
Nala's time to train is: 100 days
这是我应该得到的

Nala's event is: Marathon
Nala's time to train is: 200 days
Warren's event is: Triathlon
Warren's time to train is: 100 days

好的,我做了改变,现在我得到了

“娜拉的项目是:马拉松 娜拉的训练时间是:50天 马拉松比赛的项目是:沃伦 50年代的训练时间是:“沃伦天”


除了更改函数的参数列表外,在第二次调用函数时还反转了参数。见下文

//random'的范围太宽
const random=Math.floor(Math.random()*3);
常量getRandEvent=()=>{
如果(随机===0){
返回“马拉松”;
}else if(随机===1){
返回“铁人三项”;
}else if(随机===2){
返回“五项全能”;
}
};
//“天”的范围太窄了
const getTrainingDays=事件=>{
让天;
如果(事件==‘马拉松’){
天数=50天;
}如果发生其他情况(事件==‘铁人三项’){
天数=100天;
}如果发生其他情况(事件==‘五项全能’){
天数=200天;
}
返程天数;
};
常量名称='Nala';
const name2='Warren'
//“name”的范围太窄
const logEvent=(名称、事件)=>{
log(`${name}的事件是:${event}`);
};
常量日志时间=(名称,天数)=>{
log(`${name}的训练时间是:${days}days`);
};
常量事件=getRandEvent();
持续天数=获得训练天数(事件);
//定义一个'name'变量。在更新logEvent和logTime后将其用作参数
日志事件(名称、事件);
日志时间(名称、天数);
const event2=getRandEvent();
const days2=getTrainingDays(事件2);
//定义一个'name'变量。在更新logEvent和logTime后将其用作参数
日志事件(名称2,事件2);

日志时间(名称2,日期2)
您的
logEvent
logTime
函数被编写为只接受一个参数。正如Pointy所说,只需将代码更改为
const logEvent=(event,name)=>{console.log(
${name}的事件是:${event}
);}
如果希望两个调用输出不同的结果,则必须在
getRandEvent

    // The scope of `random` is too loose 
const random = Math.floor(Math.random() * 3);

const getRandEvent = () => {
  if (random === 0) {
    return 'Marathon';
  } else if (random === 1) {
    return 'Triathlon';
  } else if (random === 2) {
    return 'Pentathlon';
  }
};

// The scope of `days` is too tight 
const getTrainingDays = event => {
  let days;
  if (event === 'Marathon') {
    days = 50;
  } else if (event === 'Triathlon') {
    days = 100;
  } else if (event === 'Pentathlon') {
    days = 200;
  }

  return days;
};
const name = 'Nala';
const name2 = 'Warren';
// The scope of `name` is too tight 
const logEvent = (name,event) => {
  console.log(`${name}'s event is: ${event}`);
};

const logTime = (name,days) => {
  console.log(`${name}'s time to train is: ${days} days`);
};

const event = getRandEvent();
const days = getTrainingDays(event);
// Define a `name` variable. Use it as an argument after updating logEvent and logTime 


logEvent(name, event);
logTime(name, days);

const event2 = getRandEvent();
const days2 = getTrainingDays(event2);

// Define a `name` variable. Use it as an argument after updating logEvent and logTime 


logEvent(event2, name2);
logTime(days2, name2);