Typescript rxjs:地图添加字段

Typescript rxjs:地图添加字段,typescript,rxjs,Typescript,Rxjs,我正在寻找一种更优雅的方式来编写代码: Observable.of( {field: "title"}, {field: "referenceId", key: "refid"}, {field: "app"}, {field: "user"}, {field: "action"}, {field: "expiresAt", key: "expiration"}, {field: "t

我正在寻找一种更优雅的方式来编写代码:

Observable.of(
        {field: "title"},
        {field: "referenceId", key: "refid"},
        {field: "app"},
        {field: "user"},
        {field: "action"},
        {field: "expiresAt", key: "expiration"},
        {field: "timestamp"}
    )
    .pipe(
        map(field => {
            if (!field.key) {
                return { ...field, key: field.field, sorteable: true };
            }
            else {
                return { ...field, sorteable: true };
            }
        })
    );

您可以尝试使用三元条件运算符,如下所示:

    .pipe(
        map(field => 
          field.key ? { ...field, sorteable: true } : { ...field, key: field.field, sorteable: true }
    );
您也可以通过省略else条件简化代码:

    .pipe(
        map(field => {
          let temp = { ...field, sorteable: true }
          if(!field.key) {
            temp = {...temp, key: field.field}
          }
          return temp
        }
    );
您甚至可以结合使用这两种解决方案:

    .pipe(
        map(field => {
          let temp = { ...field, sorteable: true }
          return field.key ? temp : {...temp, key: field.field}
        }
    );

在这两种情况下都返回{…字段,可排序:true}?是吗?对不起,我换了密码。