mar*_*lle 5 javascript arrays object typescript
我有一系列的大陆和国家:
const continents = [
{
continent: 'Europe',
countries: [
'Albania',
'Andorra',...
],
},
{
continent: 'Asia',
countries: [
'Afghanistan',
'Bahrain',...
],
},
{
continent: 'Africa',
countries: [
'Algeria',
'Angola',...
],
},
{
continent: 'Americas',
countries: [
'Antigua and Barbuda',
'Bahamas',...
],
},
]
Run Code Online (Sandbox Code Playgroud)
还有一些国家:
const countries = ['Angola', 'Andorra']
Run Code Online (Sandbox Code Playgroud)
我想迭代各国并返回一个像这样的对象数组:
const result = countries.map(country => {
return {
continent: ??,
country: country,
}
})
Run Code Online (Sandbox Code Playgroud)
我怎样才能找到每个国家的大陆?
我试试这个:
const continent = continents.forEach((continent, i) => {
const countries = continent.countries
if (find(countries, value.country)) return continent.continent
})
Run Code Online (Sandbox Code Playgroud)
但我明白了
[ts]并非所有代码路径都返回一个值.[7030]
您可以continent通过使用Array#find和检查值来查找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);Run Code Online (Sandbox Code Playgroud)