@WarriorKodeK

Как можно написать более нормально или упрощенно?

Привет
Как можно написать более нормально или упрощенно этот код ( а именноif else участок )?

const concatenateEditionFields = (
  pack: PackType,
  edition: IEditionMetadata,
  fieldName: string
) => {
  const packField = pack[fieldName]
  const editionField = edition[fieldName]
  const concatenated = `${packField || ''}${' '}${editionField ||
    ''}`.trimLeft()
  const isLanguageEqual =
    !edition.language || edition.language === pack.language

  if (isLanguageEqual) {
    return concatenated
  } else if (!isLanguageEqual && fieldName === 'slugline') {
    if (edition.addToPackSlug) {
      return concatenated
    } else {
      return editionField
    }
  } else {
    return editionField
  }
}
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
const concatenateEditionFields = (
    pack: PackType,
    edition: IEditionMetadata,
    fieldName: string
) => {
    const packField = pack[fieldName] || '', 
        editionField = edition[fieldName] || '',
        concatenated = `${packField} ${editionField}`.trimLeft(),
        isLanguageEqual = !edition.language || edition.language === pack.language

    if (isLanguageEqual) {
        return concatenated
    } else if (fieldName === 'slugline') {
        return edition.addToPackSlug ? concatenated : editionField
    }

    return editionField
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Byte255
Пишу на PHP за еду
if (isLanguageEqual || edition.addToPackSlug) {
    return concatenated;
}
return editionField;
Ответ написан
Комментировать
@DimaIs
return isLanguageEqual ? concatenated : fieldName === 'slugline' ? edition.addToPackSlug ? concatenated : editionField : editionField
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы