Codificador principiante aquí tomando un curso en js. Estoy atascado en un problema que me pide que escriba una función que tome una matriz de países diferentes y devuelva matrices de países que tienen elementos comunes específicos (por ejemplo, devolver países que terminan en 'tierra' o 'ia' como una matriz). Aquí está el código que he escrito:
const countries = ['Finland', 'Sweden', 'Denmark', 'Norway', 'Iceland', 'Ethiopia'] function categorizeCountries(keyword) { for (country of countries) { if (keyword = 'land') { console.log([countries.filter((country) => country.endsWith('land'))]) } else if (keyword = 'en') { console.log([countries.filter((country) => country.endsWith('ia'))]) } else if (keyword ='ia') { console.log([countries.filter((country) => country.endsWith('en'))]) } else { console.log('Country does not Exists') } } } console.log(categorizeCountries(['land'])) console.log(categorizeCountries(['en'])) console.log(categorizeCountries(['ia']))La consola solo devuelve las matrices que cumplen con la especificación 'tierra' y devuelve la misma matriz 5 veces para cada búsqueda. He intentado varias cosas y esto es lo que me tiene más cerca, simplemente no sé lo que me estoy perdiendo. Cualquier ayuda es bienvenida.
Estás haciendo muchas cosas mal, pero buen intento de todos modos.
categorizeCountries(['in']) es inútil, intente llamarlo con solo una cadena categorizeCountries('in') const countries = ['Finland', 'Sweden', 'Denmark', 'Norway', 'Iceland', 'Ethiopia'] function categorizeCountries(keyword) { if (keyword == 'land') { console.log(countries.filter((country) => country.endsWith('land'))) } else if (keyword == 'en') { console.log(countries.filter((country) => country.endsWith('ia'))) } else if (keyword =='ia') { console.log(countries.filter((country) => country.endsWith('en'))) } else { console.log('Country does not Exists') } } categorizeCountries('land') categorizeCountries('en') categorizeCountries('ia')el resultado debe ser:
['Finland', 'Iceland'] ['Ethiopia'] ['Sweden'].filter ya está recorriendo la matriz; lo mismo que un bucle for. Usar la keyword param en .endsWith sería suficiente
function categorizeCountries(keyword) { return countries.filter((country) => country.endsWith(keyword)); }