Javascript 三元if语句,而else不使用&&;

Javascript 三元if语句,而else不使用&&;,javascript,arrow-functions,Javascript,Arrow Functions,我正试图将我的代码转换成一个arrow函数(我对arrow函数比较陌生),但不知道为什么它不能与&&一起工作。我认为三元if语句与else一起使用?and:而它使用&&而不使用else语句 为什么以下方法不起作用: courses.forEach((course) => tutors.forEach((tutor) => tutor.id == course.id && course["name"] = tutor.name

我正试图将我的代码转换成一个arrow函数(我对arrow函数比较陌生),但不知道为什么它不能与&&一起工作。我认为三元if语句与else一起使用?and:而它使用&&而不使用else语句

为什么以下方法不起作用:

courses.forEach((course) =>
      tutors.forEach((tutor) =>
        tutor.id == course.id &&
        course["name"] = tutor.name
        //console.log(1) has no errors
      )
    );
这是可行的,我必须使用else语句,也就是
:1

courses.forEach((course) =>
      tutors.forEach((tutor) =>
        tutor.id == course.id ?
        course["name"] = tutor.name : 1
      )
    );
这是没有箭头函数的解决方案,因此基本上,解决方案只是将下面的函数转换为箭头函数:

courses.forEach(function(course) {
  tutors.forEach(function(tutor) {
    if (tutor.id == course.id) {
      course["name"] = tutor.name;
    }
  });
});
任何关于我做错了什么的解释,或者任何关于如何最好地转换为箭头函数的提示都将非常好。谢谢你的帮助

let tutors=[
{
姓名:“贝丝”,
年龄:37岁,
身份证号码:1
},
{
姓名:“鲍勃”,
年龄:32岁,
身份证号码:2
},
{
姓名:“杰克”,
年龄:63,
身份证号码:3
},
{
姓名:“杰西”,
年龄:17岁,
身份证号码:4
}
],
课程=[
{
代码:“AA01”,
description:“Javascript IIFEs、映射、筛选器、reduces等”,
身份证号码:3
},
{
代码:“AO83”,
description:“数组,用于循环数等”,
身份证号码:1
},
{
代码:“AX40”,
描述:“CSS,HTML”,
身份证号码:3
},
{
代码:“BX92”,
description:“SQL,节点”,
身份证号码:2
},
{
代码:“CC24”,
描述:“PHP,Java”,
身份证号码:1
},
{
代码:“DI30”,
说明:“MongoDB”,
身份证号码:4
}
];
/*
课程。forEach(函数(课程){
导师。教师(职能(导师){
如果(tutor.id==course.id){
课程[“名称”]=tutor.name;
}
});
});
*/
课程。forEach((课程)=>
导师。教师(职能(导师){
如果(tutor.id==course.id){
课程[“名称”]=tutor.name;
}
})
);
/*
课程。forEach((课程)=>
导师。教师(职能(导师){
如果(tutor.id==course.id){
课程[“名称”]=tutor.name;
}
})
);
*/
/*
课程。forEach((课程)=>
导师。每位导师((导师)=>
tutor.id==course.id?
课程[“名称”]=导师。名称:1
)
);
*/
课程。forEach((课程)=>
导师。每位导师((导师)=>
tutor.id==course.id&&
课程[“名称”]=tutor.name
//console.log(1)没有错误
)
);
假设每门课程都有相同id的导师

使用
forEach
&&
在某些情况下不起作用,因为运行时认为您正在用左侧替换该值

工作 不 假设每门课程都有相同id的导师

使用
forEach
&&
在某些情况下不起作用,因为运行时认为您正在用左侧替换该值

工作 不
如果将“不”内部函数用花括号括起来,它是否有效?不,问题在于行
tutor.id==course.id&&course[“name”]=tutor.name
无论您对函数做了什么,如果此行没有更改,它将不会工作,因为作业中的
左侧出现错误,您可以通过包装(
course[“name”]=tutor.name
)来解决这个问题,因为它将替换值并返回值。如果将“dos Not”内部函数包装在花括号中,它是否有效?否,问题在于行
tutor.id==course.id&&course[“name”]=tutor.name
,无论您对函数做了什么,如果此行没有更改,它将不起作用,因为作业中的
左侧出现了
错误,您可以通过换行(
课程[“name”]=tutor.name
)来解决,因为它将替换值并返回值。不要忘了,如果使用带手动“return”的花括号,您可以在多行上编写箭头函数如果需要,请使用带有手动“return”语句的花括号,不要忘记可以在多行上编写箭头函数。
courses.map((cours) => cours["name"] = tutors.find(tutor => tutor.id === cours.id).name)
courses.forEach((cours) => cours["name"] = tutors.find(tutor => tutor.id === cours.id).name)
courses.forEach((course) =>
  tutors.forEach((tutor) =>
    tutor.id === course.id &&
    (course["name"] = tutor.name)
  )
);
courses.forEach((course) =>
  tutors.forEach((tutor) =>
    tutor.id == course.id &&
    course["name"] = tutor.name
  )
)