【问题标题】:ES6 Destructuring and check a parametreES6 解构并检查参数
【发布时间】:2023-01-03 00:06:15
【问题描述】:

    const data = { 
    
    countries: [
        {
          id: 'france',
          name: 'France',
          europe: true,
          cities: [
            'Paris',     'Lyon',  'Metz',
            'Bourdeaux',    'Marsielle',  'Nantes',
          ]
        },
        {
          id: 'italy',
          name: 'Italy',
          europe: true,
          cities: [
            'Rome',   'Milan',
            'Torino',   'Napoli',
          ]
        },
    }

我正在尝试创建一个带有 2 个参数的函数,第一个是数据,第二个是城市名称,我需要一个带有 reduce 的示例来检查城市中是否存在第二个参数,如果是,则返回 country.name。

【问题讨论】:

标签: javascript


【解决方案1】:

您可以使用Array.prototype.reduce() 函数遍历国家/地区。

例子:

    function getCountry(data, city) {
      return data.countries.reduce((result, country) => {
        if (country.cities.includes(city)) {
          return country.name;
        }
        return result;
      }, null);
    }
    
    const data = {
      countries: [
        {
          id: 'france',
          name: 'France',
          europe: true,
          cities: [
            'Paris',     'Lyon',  'Metz',
            'Bourdeaux',    'Marsielle',  'Nantes',
          ]
        },
        {
          id: 'italy',
          name: 'Italy',
          europe: true,
          cities: [
            'Rome',   'Milan',
            'Torino',   'Napoli',
          ]
        },
      ]
    };
    
    console.log(getCountry(data, 'Paris')); // Output: "France"
    console.log(getCountry(data, 'Milan')); // Output: "Italy"
    console.log(getCountry(data, 'New York')); // Output: null

【讨论】:

    猜你喜欢
    • 2017-08-23
    • 1970-01-01
    • 2017-09-14
    • 2019-04-18
    • 2021-02-05
    • 2016-10-30
    相关资源
    最近更新 更多