Javascript 如何将find()与两个值一起使用
我想实现一个函数,用数字返回巴黎,用数字返回里昂,因为我不想有邮政编码。 但我有一个问题,它对里昂不起作用。只回巴黎。我想是我的错,这是我的错Javascript 如何将find()与两个值一起使用,javascript,Javascript,我想实现一个函数,用数字返回巴黎,用数字返回里昂,因为我不想有邮政编码。 但我有一个问题,它对里昂不起作用。只回巴黎。我想是我的错,这是我的错 (ci) => ci.postalCode === 75000 || 69000); 但是我不知道如何找到解决办法 如果有人能给我解释,那就太好了 谢谢 public static CITIES_INFO = [ { postalCode: 75000, baseName: "Paris" }, { postalCode: 6
(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)}`;
}
}
公共静态城市\u信息=[
{邮政编码:75000,基本名称:“巴黎”},
{邮政编码:69000,基本名称:“里昂”},
{邮政编码:33000,基本名称:“波尔多”},
{邮政编码:44000,基本名称:“南特”},
{邮政编码:38000,基本名称:“格勒诺布尔”},
{邮政编码:74000,基本名称:“Annency”},
{邮政编码:13000,基本名称:“马赛”},
{邮政编码:78000,基本名称:“凡尔赛”},
{邮政编码:92081,基本名称:“La Défense”},
{postalCode:92100,baseName:“boulogne”},
];
公共静态转换器PostalCodeTocityName(postalCode:编号){
让cityInfo=CityUtils.CITIES\u INFO.find((ci)=>ci.postalCode==postalCode);
国际单项体育联合会(城市信息){
返回cityInfo.baseName.charAt(0.toUpperCase()+cityInfo.baseName.slice(1);
}
if(后代码>75000和<76000(后代码>69000和<70000)){
cityInfo=CityUtils.CITIES\u INFO.find(
(ci)=>ci.postalCode===75000 | | 69000);
国际单项体育联合会(城市信息){
const cityName=cityInfo.baseName.charAt(0.toUpperCase()+cityInfo.baseName.slice(1);
返回`${cityName}${parseInt(postalCode.toString().slice(-2),10)}`;
}
}
您需要分别比较这两个值
(ci) => ci.postalCode === 75000 || ci.postalCode === 69000);
或者更好的方法是创建一个数组,然后使用includes()
尝试此操作,它应该返回
baseName
ci.postalCode===75000 | | ci.postalCode==69000
FYI,您应该使用字符串而不是数字。数字将不会保留前导“0”。感谢您的支持answer@askemeline如果你对我的回答满意,考虑接受这个答案。
(ci) => [7500, 69000].includes(ci.postalCode));
const city = postalCode => CITIES_INFO.filter(code => code === postalCode).length !== 0 ? CITIES_INFO.find(code => code === postalCode)[0].baseName : null;
const baseName = city(75000)