Как мне сделать код возврата функции для названия страны на angular 7? - PullRequest
0 голосов
/ 09 июля 2020

Я работаю над angular 7 приложением, с которым сталкиваюсь Проблема: я не могу выполнить функцию, возвращающую код страны для названия страны.

У меня уже есть ZCO в качестве ввода названия страны, но моя проблема:

Как вернуть код страны из названия страны?

Фактически для большей ясности

Мне нужна функция на angular 7, укажите название страны как ZCO, и он вернет код страны.

ZCO представляет название страны как

Индия, Египет, Соединенные Штаты

И он должен возвращать код страны из функции получения кода как:

IN, EG, US

ON ts compoent:

 this.OriginCountry= this.partDetailsService.currentData.OriginCountry;  
    this.OriginCountry.forEach(e => {  
              e.code=getCode(e.ZCO);  
      
            });  
 

getcode принимает параметр ZCO в качестве названия страны и возвращает код страны:

getCode(e.ZCO);
{
return code // as country code
}

Как сделать это как функцию получить код

 getCode(e.ZCO);
    {
    return code // as country code
    }

1 Ответ

0 голосов
/ 09 июля 2020

Вы можете создать CountryCodeService, который будет выполнять обработку. Вам нужно будет создать внутреннюю карту, чтобы связать названия стран с кодами стран:

interface Country {
    name: string;
    code: string;
}

const countryMap: Country[] = [
    // ...
    { name: "India", code: "IN" },
    // ...
]

Таким образом, вы можете получить страну по имени с find в массиве и получить связанный код страны:

getCode(countryName: string): string {
    const country: Country | undefined = this.countryMap.find((c: Country) => c.name === countryName);
    if (!country) {
        throw new Error(`Could not find country code for country ${countryName}`);
    }

    return country.code;
}
...