javascript - 找到每个国家的大陆

标签 javascript arrays typescript object

我有一系列大陆和国家:

const continents = [
  {
    continent: 'Europe',
    countries: [
      'Albania',
      'Andorra',...
    ],
  },
  {
    continent: 'Asia',
    countries: [
      'Afghanistan',
      'Bahrain',...
    ],
  },
  {
    continent: 'Africa',
    countries: [
      'Algeria',
      'Angola',...
    ],
  },
  {
    continent: 'Americas',
    countries: [
      'Antigua and Barbuda',
      'Bahamas',...
    ],
  },
]

还有一些国家:

const countries = ['Angola', 'Andorra']

我想遍历国家并返回这样的对象数组:

const result = countries.map(country => {
  return {
    continent: ??,
    country: country,
  }
})

如何找到每个国家的大陆?

我试试这个:

const continent = continents.forEach((continent, i) => {
  const countries = continent.countries
  if (find(countries, value.country)) return continent.continent
})

但是我明白了

[ts] Not all code paths return a value. [7030]

最佳答案

您可以通过使用 Array#find 检查值来找到 continentArray#includes

const
    continents = [{ continent: 'Europe', countries: ['Albania', 'Andorra'] }, { continent: 'Asia', countries: ['Afghanistan', 'Bahrain'] }, { continent: 'Africa', countries: ['Algeria', 'Angola'] }, { continent: 'Americas', countries: ['Antigua and Barbuda', 'Bahamas'] }],
    countries = ['Angola', 'Andorra'],
    result = countries.map(country => ({
        continent: continents.find(({ countries }) =>
            countries.includes(country)).continent,
        country,
    }));

console.log(result);

关于javascript - 找到每个国家的大陆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54456556/

相关文章:

javascript - d3.json() 支持身份验证吗?如果没有,还有哪些其他 JavaScript 选项可用于 JSON 检索?

java - 如何在Android上在特定条件下停止循环并将数据插入数组

java - 从数据集中读取并放入对象中

reactjs - 为子项提供属性时如何将正确的类型分配给 React.cloneElement?

javascript - 我如何在 scriplet 中使用 javascript var

javascript - 如何解析 JSON 对象? (从服务器端到客户端...javascript)

javascript - 这个 JavasScript 正则表达式\.(md|njk|md\.njk)$ 可以进一步简化吗?

PHP 向原始 foreach 数组添加值以使其继续运行

javascript - Angular 下载大块

angular - 如何在 IONIC 3 中的 ionic 项目部分显示两个 ionic 列场