我想实现一个函数来返回带数字的巴黎和带数字的里昂,因为我不想拥有邮政编码。 但是我有一个问题,对于里昂它无法正常工作。只有回巴黎。我认为我的错误就在线上
(ci) => ci.postalCode === 75000 || 69000);
但是我不知道如何找到解决方案 如果有人可以解释我,那就很好
谢谢
public static CITIES_INFO = [
{ postalCode: 75000, baseName: "Paris" },
{ postalCode: 69000, baseName: "Lyon" },
{ postalCode: 33000, baseName: "bordeaux" },
{ postalCode: 44000, baseName: "nantes" },
{ postalCode: 38000, baseName: "grenoble" },
{ postalCode: 74000, baseName: "annecy" },
{ postalCode: 13000, baseName: "marseille" },
{ postalCode: 78000, baseName: "versailles" },
{ postalCode: 92081, baseName: "La Défense" },
{ postalCode: 92100, baseName: "boulogne" },
];
public static convertPostalCodeToCityName(postalCode: number) {
let cityInfo = CityUtils.CITIES_INFO.find((ci) => ci.postalCode === postalCode);
if (cityInfo) {
return cityInfo.baseName.charAt(0).toUpperCase() + cityInfo.baseName.slice(1);
}
if (postalCode > 75000 && postalCode < 76000 || (postalCode > 69000 && postalCode < 70000)) {
cityInfo = CityUtils.CITIES_INFO.find(
(ci) => ci.postalCode === 75000 || 69000);
if (cityInfo) {
const cityName = cityInfo.baseName.charAt(0).toUpperCase() + cityInfo.baseName.slice(1);
return `${cityName} ${parseInt(postalCode.toString().slice(-2), 10)}`;
}
}
答案 0 :(得分:3)
您需要分别比较两个值。
(ci) => ci.postalCode === 75000 || ci.postalCode === 69000);
或者更好的方法是创建一个数组,然后使用includes()
(ci) => [7500, 69000].includes(ci.postalCode));
答案 1 :(得分:0)
const city = postalCode => CITIES_INFO.filter(code => code === postalCode).length !== 0 ? CITIES_INFO.find(code => code === postalCode)[0].baseName : null;
const baseName = city(75000)
尝试此操作,它应该返回baseName