Как преобразовать объект с адресом в строку?

Подскажите, пожалуйста, каким образом можно преобразовать объект с адресом в строку?

const legalAddress {
city: 'Moscow',
street: 'Lenina',
house: '32',
building1: '2', //корпус
building2: '', //строение
apartment: '66'
};

return: 'г. Moscow, ул. Lenina, д. 32, корп. 2, кв./оф. 66'


Ответы (3 шт):

Автор решения: Wedyarit

Если проблема заключается в проверке валидности свойств объекта, то помочь с этим могут тернарные операторы.

В примере ниже продемонстрирована функция, проверяющая существование аттрибутов объекта (пользователя) и в случае их наличия, конкатенирующая итоговую строку.

const user = {
    firstname: 'Firstame',
    lastname: 'Lastname',
    age: 26
};

function object2text(user) {
    let text = '';
    text += user.firstname ? `Name: ${user.firstname}\n` : '';
    text += user.lastname ? `Lastname: ${user.lastname}\n` : '';
    text += user.age ? `Age: ${user.age}` : '';

    return text;
}

Основываясь на этом примере, постарайтесь решить свою задачу самостоятельно.

→ Ссылка
Автор решения: Артём Антипин
export const INITIAL_STATE_LEGAL_ADDRESS = {
settlement: '',
street: '',
house: '',
building1: '',
building2: '',
apartment: '',
toString: function () {
    return `г. ${this.settlement}, ул. ${this.street}, ${this.house.length ? ` д. ${this.house}` : ''} ${
        this.building1.length ? ` стр. ${this.building1}` : ''
    }${this.building2.length ? `д. ${this.building2}` : ''}${
        this.apartment.length ? ` оф. ${this.apartment}` : ''
    }`;
},

};

→ Ссылка
Автор решения: Антон Сидоренко
const createString = ({ city, street, house, building1, building2, apartment }) => {
    return `г.${city}, ул. ${street}, д. ${house}, ${building1 ? `корп.${building1}` : ''},${building2 ? `строение.${building2}` : ''} кв./оф. ${apartment} `
}
→ Ссылка