没有 else 的三元 if 语句不适用于 &&
Ternary if statement without else not working with &&
我正在尝试将我的代码转换成箭头函数(我对箭头函数比较陌生)但不知道为什么它不能与 && 一起工作。我认为带有 else 的三元 if 语句使用 ? 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 = [
{
name: "Beth",
age: 37,
id: 1
},
{
name: "Bob",
age: 32,
id: 2
},
{
name: "Jack",
age: 63,
id: 3
},
{
name: "Jess",
age: 17,
id: 4
}
],
courses = [
{
code: "AA01",
description: "Javascript IIFEs, maps, filters, reduces, etc",
id: 3
},
{
code: "AO83",
description: "Arrays, for of loops, etc",
id: 1
},
{
code: "AX40",
description: "CSS, HTML",
id: 3
},
{
code: "BX92",
description: "SQL, Node",
id: 2
},
{
code: "CC24",
description: "PHP, Java",
id: 1
},
{
code: "DI30",
description: "MongoDB",
id: 4
}
];
/*
courses.forEach(function(course) {
tutors.forEach(function(tutor) {
if (tutor.id == course.id) {
course["name"] = tutor.name;
}
});
});
*/
courses.forEach((course) =>
tutors.forEach(function(tutor) {
if (tutor.id == course.id) {
course["name"] = tutor.name;
}
})
);
/*
courses.forEach((course) =>
tutors.forEach(function(tutor) {
if (tutor.id == course.id) {
course["name"] = tutor.name;
}
})
);
*/
/*
courses.forEach((course) =>
tutors.forEach((tutor) =>
tutor.id == course.id ?
course["name"] = tutor.name : 1
)
);
*/
courses.forEach((course) =>
tutors.forEach((tutor) =>
tutor.id == course.id &&
course["name"] = tutor.name
//console.log(1) has no errors
)
);
courses.map((cours) => cours["name"] = tutors.find(tutor => tutor.id === cours.id).name)
假设每门课程都有共享相同 ID 的导师
使用forEach
courses.forEach((cours) => cours["name"] = tutors.find(tutor => tutor.id === cours.id).name)
和 &&
在某些情况下不起作用,因为运行时认为您正在用 left-side
替换值
工作
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
)
)
我正在尝试将我的代码转换成箭头函数(我对箭头函数比较陌生)但不知道为什么它不能与 && 一起工作。我认为带有 else 的三元 if 语句使用 ? 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 = [
{
name: "Beth",
age: 37,
id: 1
},
{
name: "Bob",
age: 32,
id: 2
},
{
name: "Jack",
age: 63,
id: 3
},
{
name: "Jess",
age: 17,
id: 4
}
],
courses = [
{
code: "AA01",
description: "Javascript IIFEs, maps, filters, reduces, etc",
id: 3
},
{
code: "AO83",
description: "Arrays, for of loops, etc",
id: 1
},
{
code: "AX40",
description: "CSS, HTML",
id: 3
},
{
code: "BX92",
description: "SQL, Node",
id: 2
},
{
code: "CC24",
description: "PHP, Java",
id: 1
},
{
code: "DI30",
description: "MongoDB",
id: 4
}
];
/*
courses.forEach(function(course) {
tutors.forEach(function(tutor) {
if (tutor.id == course.id) {
course["name"] = tutor.name;
}
});
});
*/
courses.forEach((course) =>
tutors.forEach(function(tutor) {
if (tutor.id == course.id) {
course["name"] = tutor.name;
}
})
);
/*
courses.forEach((course) =>
tutors.forEach(function(tutor) {
if (tutor.id == course.id) {
course["name"] = tutor.name;
}
})
);
*/
/*
courses.forEach((course) =>
tutors.forEach((tutor) =>
tutor.id == course.id ?
course["name"] = tutor.name : 1
)
);
*/
courses.forEach((course) =>
tutors.forEach((tutor) =>
tutor.id == course.id &&
course["name"] = tutor.name
//console.log(1) has no errors
)
);
courses.map((cours) => cours["name"] = tutors.find(tutor => tutor.id === cours.id).name)
假设每门课程都有共享相同 ID 的导师
使用forEach
courses.forEach((cours) => cours["name"] = tutors.find(tutor => tutor.id === cours.id).name)
和 &&
在某些情况下不起作用,因为运行时认为您正在用 left-side
工作
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
)
)