我有一系列大陆和国家:
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
检查值来找到 continent
和 Array#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/