1. JavaScript / Говнокод #26070

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    {{ order.type === '2' && order.orderAddress ?
                      ` ${$store.getters['delivery/points'].find(item => item['a:DeliveryShopId']._text === order.orderAddress) && $store.getters['delivery/points'].find(item => item['a:DeliveryShopId']._text === order.orderAddress)['a:StreetLine']._text ? $store.getters['delivery/points'].find(item => item['a:DeliveryShopId']._text === order.orderAddress)['a:StreetLine']._text : ''} ${$store.getters['delivery/points'].find(item => item['a:DeliveryShopId']._text === order.orderAddress) ? $store.getters['delivery/points'].find(item => item['a:DeliveryShopId']._text === order.orderAddress)['a:House']._text : ''}`
                    :
                    order.clientAddress
                    ?
                      ` ${$store.getters['delivery/clientAddresses'].find(item => item['a:ClientAddressId']._text === order.clientAddress)['a:SettlementName'] && $store.getters['delivery/clientAddresses'].find(item => item['a:ClientAddressId']._text === order.clientAddress) && $store.getters['delivery/clientAddresses'].find(item => item['a:ClientAddressId']._text === order.clientAddress)['a:SettlementName']._text ? $store.getters['delivery/clientAddresses'].find(item => item['a:ClientAddressId']._text === order.clientAddress)['a:SettlementName']._text + ',' : ''} ${$store.getters['delivery/clientAddresses'].find(item => item['a:ClientAddressId']._text === order.clientAddress)['a:StreetLine']._text} ${$store.getters['delivery/clientAddresses'].find(item => item['a:ClientAddressId']._text === order.clientAddress)['a:House']._text}`
                    :
                    '' }}

    именно так профессиональные разработчики мобильных приложений получают строку с адресом магазина или пользователя.

    Запостил: jerk_thehuman, 08 Декабря 2019

    Комментарии (10) RSS

    • Зато как функцианальненько! А уж стрелочные функции — это вообще плюс 100 очков Гриффиндору к модности кода. Сразу видно, что писал хипстер.
      Ответить
    • Ёбаная срань.
      Ответить
    • если кому интересно, то это суть того, что хотелось получить в итоге, после (небольшого) рефакторинга:
      getOrderAddressRow (order) {
              let foundPoint = null
              if (order.type === 2 && order.orderAddress) {
                foundPoint = this.$store.getters['delivery/points'].find(item => item.shopId === order.orderAddress)
              }
              else if (order.clientAddress) {
                foundPoint = this.$store.getters['delivery/clientAddresses'].find(item => item.addressId === order.clientAddress)
              }
              if (!foundPoint) {
                return null
              }
              let result = ''
              if (foundPoint.settlement) {
                result += foundPoint.settlement + ', '
              }
              if (foundPoint.street) {
                result += foundPoint.street + ' '
              }
              result += foundPoint.house
              return result
            }
      Ответить
      • На троечку по моей смузихлебской шкале
        getOrderAddressRow ({type, orderAddress, clientAddress}) {
          const {$store: {getters}} = this;
          const foundPoint = type && orderAddress && getters['delivery/points'].find(({shopId }) => shopId === orderAddress)
            || clientAddress && getters['delivery/clientAddresses'].find(({addressId}) => addressId === clientAddress);
          if(!foundPoint) {
            return null;
          }
          const { settlement, street, house } = foundPoint;
          return [settlement && settlement + ',', street, house].filter(Boolean).join(' ');
        }
        Ответить
        • Низачот, в стабильной версии «Хрома» работает. Надо чтоб гомоиконы только в самой свежей ночной сборке запускалось!
          Ответить
          • Приведи реальный пример кода, который запускается только в ночной сборке.
            Ответить
            • Обычно все наоборот. Разработчики хрома и другие типы вроде Babel имеют вредную привычку вносить в открытый доступ фичи, находящиеся только на стадии пропозала в стандарт, так что возможны (и, кажется, были) казусы когда код оказывался невалиден в самой новой версии стандарта, потому что фичу в итоге сделали по-другому
              Ответить
    • КАКОЙ БАГОР )))
      Ответить
    • КАКОЙ БАГОР )))
      Ответить
    • КАКОЙ БАГОР )))
      Ответить

    Добавить комментарий