Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将find()与两个值一起使用_Javascript - Fatal编程技术网

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)