JavaScript:如何通过三元条件的边缘情况

我如何在这里实现一些可能发生的边缘情况。


//边缘情况下,如果mediaType是undefined,它应该返回undefined或者infinity,如果mediaType是xs它应该返回xs与当前实现。


//编码当前实现


function getCurrentBreakpoint(mediaType) {

  const mediaTypes = ["xs", "sm", "md", "lg", "xl", "infinity"];

  return mediaTypes[mediaTypes.indexOf(mediaType) - 1];

}

这里有任何帮助。


智慧大石
浏览 142回答 3
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

德玛西亚99

您可以通过简单地检查 mediaType 是否未定义if (!mediaType) {/* ... */}目前尚不清楚您调用该函数的上下文,但如果您想返回 undefined (我认为这不是一个好的做法),您可以这样做:if (!mediaType) {    return mediaType}编辑:用户将帖子和标题更改为与三元一起使用。那么它将是return !mediaType ? mediaType : /* whatever */如果是另一种方式,并且您希望始终定义它,则可以使用二进制条件:return mediaType && /* whatever */

翻过高山走不出你

可能的解决方案:      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";       }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript