Cuando obtengo resultados de una API con esta función
let recipeArray = async function getRecipeByPreference() { try { let results = await axios.get('https://api.spoonacular.com/recipes/complexSearch?number=5&apiKey=*****', { headers: { "Content-Type": "application/json" } }) return recipeArray = results.data.results.slice(0, 5); } catch (e) { console.error(e); } }Estos son los resultados devueltos en la recetaArray:
0: {id: 716426, title: 'Cauliflower, Brown Rice, and Vegetable Fried Rice', image: 'https://spoonacular.com/recipeImages/716426-312x231.jpg', imageType: 'jpg'} 1: {id: 715594, title: 'Homemade Garlic and Basil French Fries', image: 'https://spoonacular.com/recipeImages/715594-312x231.jpg', imageType: 'jpg'} 2: {id: 715497, title: 'Berry Banana Breakfast Smoothie', image: 'https://spoonacular.com/recipeImages/715497-312x231.jpg', imageType: 'jpg'} 3: {id: 644387, title: 'Garlicky Kale', image: 'https://spoonacular.com/recipeImages/644387-312x231.jpg', imageType: 'jpg'} 4: {id: 716268, title: 'African Chicken Peanut Stew', image: 'https://spoonacular.com/recipeImages/716268-312x231.jpg', imageType: 'jpg'}Quiero poner los primeros 5 números de identificación en la matriz de recetas, así que obtengo esto:
recipeArray = [716426,715594,715497,644387,716268] y consola.log(recetaArray[0]); me dará 716426
Sé que hay preguntas similares aquí sobre el desbordamiento de pila, pero no puedo hacer que las soluciones funcionen para mí.
¡Cualquier ayuda sería muy apreciada!
Simplemente cambie results.data.results.slice(0,5); a results.data.results.slice(0,5).map(({id})=> id); y debería funcionar ;)
const results = [{ id: 716426, title: 'Cauliflower, Brown Rice, and Vegetable Fried Rice', image: 'https://spoonacular.com/recipeImages/716426-312x231.jpg', imageType: 'jpg' }, { id: 715594, title: 'Homemade Garlic and Basil French Fries', image: 'https://spoonacular.com/recipeImages/715594-312x231.jpg', imageType: 'jpg' }, { id: 715497, title: 'Berry Banana Breakfast Smoothie', image: 'https://spoonacular.com/recipeImages/715497-312x231.jpg', imageType: 'jpg' }, { id: 644387, title: 'Garlicky Kale', image: 'https://spoonacular.com/recipeImages/644387-312x231.jpg', imageType: 'jpg' }, { id: 716268, title: 'African Chicken Peanut Stew', image: 'https://spoonacular.com/recipeImages/716268-312x231.jpg', imageType: 'jpg' } ]; const idArray = results.slice(0, 5).map(({ id }) => id); console.log(idArray);Podrías mapear el Array que obtuviste y hacer que solo tenga los Id. de recetas
return recipeArray = results.data.results.slice(0,5).map(elem => elem.id)Map() es un método de matriz que cambia la matriz para que coincida con la función pasada, en nuestro caso queremos convertir cada objeto de receta en solo su ID.