import axios from 'axios'; import React, {useState, useEffect} from 'react'; function App() { const [students, setStudents] = useState([]); **const avg = arr => arr.reduce((a,b) => a + b, 0) / arr.length** useEffect(() => { axios .get("URL") .then((data) => setStudents(data.data.students)); }, []); return ( <> {students.map((student) => ( <div key={student.id}> <p><h3> {student.firstName} {student.lastName}</h3></p> <p>{student.email}</p> <p>{student.company}</p> <p>{student.skill}</p> <p>{avg(student.grades)}</p> </div> ))} </> ); } export default App;Hola puse una función para sacar el valor promedio del json, pero no funciona. No sé si la función es incorrecta o la ubicación de la función es incorrecta. ¿Podrías ayudarme?
const avg = arr => arr.reduce((a,b) => a + b, 0) / arr.length Above is the json file format.Según sus datos json, deberá convertir las calificaciones en números antes de que puedan promediarse, lo que se puede hacer con el map antes de reduce
const avg = arr => arr.map(grade => parseInt(grade)).reduce((a,b) => a + b, 0) / arr.lengthEsto es más adecuado
const average = arr => (arr.reduce((previousValue, currentValue) => parseInt(previousValue) + parseInt(currentValue)) / arr.length) || "Error occured at calculation";