3 回答
TA贡献1818条经验 获得超3个赞
您可以使用Array#find:
function getCurrentBreakpoint(mediaType) {
const mediaTypes = ["xs", "sm", "md", "lg", "xl", "infinity"];
return mediaTypes.find(mt => mt === mediaType);
}
console.log(getCurrentBreakpoint('xs'));
console.log(getCurrentBreakpoint('foo'));
console.log(getCurrentBreakpoint());
如果你真的想使用三元运算符,你可以使用它来代替。
return mediaTypes.includes(mediaType) ? mediaType : undefined
TA贡献1770条经验 获得超3个赞
您可以通过简单地检查 mediaType 是否未定义
if (!mediaType) {
/* ... */
}
目前尚不清楚您调用该函数的上下文,但如果您想返回 undefined (我认为这不是一个好的做法),您可以这样做:
if (!mediaType) {
return mediaType
}
编辑:用户将帖子和标题更改为与三元一起使用。
那么它将是
return !mediaType ? mediaType : /* whatever */
如果是另一种方式,并且您希望始终定义它,则可以使用二进制条件:
return mediaType && /* whatever */
TA贡献1875条经验 获得超3个赞
可能的解决方案:
function getCurrentBreakpoint(mediaType) {
const mediaTypes = ["xs", "sm", "md", "lg", "xl", "infinity"];
return mediaType=="xs"?"xs":mediaTypes[mediaTypes.indexOf(mediaType) - 1]?mediaTypes[mediaTypes.indexOf(mediaType) - 1]:"infinity";
}
添加回答
举报