繁体   English   中英

如何在javascript中的.map函数中拆分嵌套的三元语句?

[英]How to split up a nested ternary statement inside a .map function in javascript?

我有一个像

      obj.map((u) =>
        u.members ? u.members : u.id ? u.id : u.member_id, 
      )

我需要把它分开 b/c eslint 不喜欢嵌套的三元运算符。 我从逻辑上知道它应该是这样的,但不确定地图函数内部的语法是什么

          .map((u) =>
            if(u.members ){
              u.members ;
            }
            else{
              if(u.id){
                u.id;
              }
              else{
                u.member_id;
              }
            }
          )

你可以使用类似的东西

.map((u) => {
  if(u.members ){
    return u.members ;
  }
  else if(u.id){
    return u.id;
  }
  else{
    return u.member_id;
  }
});

由于 map 的回调函数已成为多行,您可以将其包装在{} ,从而像编写任何其他方法(包括 return 语句)一样编写它。

你必须做以下事情:

  • {}包裹箭头函数
  • 从函数返回值

您的代码如下所示:

.map(u => {
  if(u.members)
    return u.members;
  else if(u.id)
    return u.id;
  else       
    return u.member_id;         
  })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM