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";
}
添加回答
舉報