ok, estoy tratando de responder una pregunta y aprendiendo a codificar. con respecto a una matriz y al usar declaraciones foreach, la función debe permanecer como esta "función animalNames" debe permanecer en algún lugar, pero aparentemente, estoy haciendo algo mal porque me devuelve como indefinido. incluso si produce la matriz correcta, ¿alguien podría mirarla y decirme qué hice mal?
adjunto hay una imagen del código, la matriz y la pregunta que respondí. así es como escribí mi función.
const displayNames = []; zooAnimals.forEach(function animalNames(element){ var display = "name: " + element.animal_name + ", " + "scientific: " + element.scientific_name displayNames.push(display); }) console.log(displayNames);de nuevo obtengo la matriz correcta y los datos parecen correctos... pero animalNames vuelve como indefinido... no puedo eliminar esta parte, debo mantenerla allí, pero no sé qué hacer con ella.

Creo que estás siguiendo este desafío . En este caso, asegúrese de leer las instrucciones correctamente:
Los zoológicos quieren mostrar tanto el nombre científico como el nombre del animal frente a los hábitats. Use animalNames para completar y devolver la matriz displayNames solo con el nombre del animal y el nombre científico de cada animal. displayNames será una matriz de cadenas , y cada cadena debe seguir este patrón: "nombre: {nombre}, científico: {nombre científico}"
Entonces, según las instrucciones, se espera que cree una función animalNames() que cree una matriz llamada displayNames y devuelva esta matriz desde dentro de su función animalNames() . La matriz displayNames contiene cadenas del name: animal_name, scientific: scientific_name .
// you could set zooAnimals as a required parameter in your function // but as it is defined in the same file you can access it directly as well function animalNames() { const displayNames = []; // you have to do the forEach on zooAnimals here zooAnimals.forEach(animal => displayNames.push(`name: ${animal.animal_name}, scientific: ${animal.scientific_name}`)) // return an array return displayNames; } De la forma en que lo hiciste, la función animalsName() es una función anónima que solo existe dentro de la llamada zooAnimals.forEach() . Por lo tanto, es indefinido.
intente esto, define una función animalNames como función separada
const displayNames = []; const zooAnimals = [ {animal_name:"Jackel",scientific_name:"Canine"} ] function animalNames({animal_name, scientific_name}){ return `name: ${animal_name}, scientific: ${scientific_name}` } zooAnimals.forEach((element)=>{ displayNames.push(animalNames(element)); }) console.log(displayNames);