如何在 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 语句。

你必须做以下事情:

  • {}
  • 包裹箭头函数
  • Return 来自函数的值

您的代码将类似于:

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