Me he encontrado con un comportamiento muy extraño en nodeJS. Estoy tratando de inicializar una matriz vacía y luego llenar esa matriz dentro de un bucle for. Consulte el código simplificado a continuación.
let arr = [] for (let i = 0; i < 20; i++) { console.log(arr) arr.push(`hello`) } console.log(arr)Esto genera solo una matriz vacía en cada instancia del bucle y después.
[] [] [] [] ... []No puedo por mi vida entender por qué es eso. Supongo que tiene algo que ver con el alcance, pero aún se puede acceder a la matriz dentro del bucle cuando le hago una asignación directa. ¡Cualquier ayuda sería muy apreciada!
Editar : Aquí está el código completo con el que estoy luchando. El arr.push no parece enviar las nuevas direcciones URL al arr. Gracias
const getRandImgs = async (ct) => { console.log('At the top of getRandImgs') try { let arr = [] if (ct > 30) { arr = await getRandImgs(30) console.log(arr) ct -= 30 } const config = { params: { collections: '483251', count: ct }, headers: { Authorization: 'Client-ID XXXXXXX' } } const res = await axios.get('https://api.unsplash.com/photos/random', config) for (const d of res.data) { console.log(d.urls.full) console.log(arr) arr.push[d.urls.full] console.log(arr) } return arr } catch (e) { console.log(e) } }Tu linea
arr.push[d.urls.full]debiera ser
arr.push(d.urls.full)