rxjs: поле добавления карты - PullRequest
0 голосов
/ 17 мая 2019

Я ищу более элегантный способ написания этого кода:

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 };
            }
        })
    );

1 Ответ

2 голосов
/ 17 мая 2019

Вы можете попробовать использовать троичный условный оператор ? , например:

    .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}
        }
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...