Solo unos meses en un programa de desarrollo y soy un idiota, así que ten paciencia conmigo.
Estoy intentando crear una aplicación de riesgo usando http://jservice.io/ . La siguiente función primero hace una solicitud de obtención a la URL, luego usa _.sampleSize para obtener 6 respuestas aleatorias de la API, luego itera a través de NUM_CATEGORIES para obtener los ID (que se guardan en la variable categoryID) antes de enviar esos ID al catId formación. Además, corríjame si mi comprensión de cómo funciona está completamente equivocada.
let catId = []; async function getCategoryIds() { const res = await axios.get(`https://jservice.io/api/categories/?count=50`); NUM_CATEGORIES = _.sampleSize(res.data, [n = 6]); for (let num of NUM_CATEGORIES) { let categoryID = num.id; catId.push(categoryID); } console.log(catId); } getCategoryIds();
La siguiente parte del proyecto es devolver un objeto con datos sobre una categoría como esta:
Devuelve {título: "Matemáticas", pistas: matriz de pistas}
{question: "Hamlet Author", answer: "Shakespeare", showing: null},
{question: "Bell Jar Author", answer: "Plath", showing: null},
En la función a continuación, intenté usar .map() para iterar sobre la matriz catId y devolver los datos que necesito pero, sinceramente, estoy completamente perdido aquí (por eso no me molesté en pasar a " parte "pistas"). ¿Puede alguien ayudarme a explicarme cómo puedo usar el mapa para hacer que esto funcione?
async function getCategory(catId) { const res = await axios.get(`http://jservice.io/api/clues?category=${catId}`); catId.map(result => { return { question: res.data.question, answer: res.data.answer, title: res.data.title, } }); console.log(catId); }
IIRC correctamente Axios devuelve un objeto con una propiedad data
. Por lo tanto, debe usar el map
para iterar sobre data
y devolver un nuevo objeto con los valores de cada elemento.
async function getCategory(catId) { const res = await axios.get(`http://jservice.io/api/clues?category=${catId}`); const out = res.data.map(el => { return { question: el.question, answer: el.answer, title: el.title, } }); console.log(out); }