Estoy tratando de imprimir todos los países que terminan con 'tierra' de la siguiente matriz de países:
const countries = [ 'Albania', 'Bolivia', 'Canada', 'Denmark', 'Ethiopia', 'Finland', 'Germany', 'Hungary', 'Ireland', 'Japan', 'Kenya' ] newArr = []; for (let i = 0; i <= countries.length; i++){ console.log(countries[i]) if (countries[i].endsWith('land') === true){ newArr.push(countries[i]) } else{ continue } }Sin embargo, tengo un TypeError: No puedo leer las propiedades de undefined (leyendo 'endsWith)
fuera del índice prueba esto
for (let i = 0; i <= countries.length - 1; i++) { console.log(countries[i]); if (countries[i].endsWith("land") === true) { newArr.push(countries[i]); } else { continue; } }¡No use = porque el índice será uno menos que la longitud de la matriz!
const countries = [ 'Albania', 'Bolivia', 'Canada', 'Denmark', 'Ethiopia', 'Finland', 'Germany', 'Hungary', 'Ireland', 'Japan', 'Kenya' ] newArr = []; for (let i = 0; i < countries.length; i++){ console.log(countries[i]) if (countries[i].endsWith('land') === true){ newArr.push(countries[i]) } else{ continue } }Espero que ya haya obtenido la respuesta de los comentarios y otras respuestas, pero aquí hay algunas mejoras que puede hacer usando array reduce y &&
const countries = [ 'Albania', 'Bolivia', 'Canada', 'Denmark', 'Ethiopia', 'Finland', 'Germany', 'Hungary', 'Ireland', 'Japan', 'Kenya' ] const z = countries.reduce((acc, curr) => { curr.endsWith('land') && acc.push(curr); return acc; }, []); console.log(z)