Estoy capturando del almacenamiento de Firebase 3 imágenes diferentes (enlace).
Quiero crear tres objetos con clave-> par de valores. La clave es siempre la misma (url) y el valor es el enlace del almacenamiento. estoy intentando la URL del bucle: pero solo me muestra el último enlace
let linkArray = [] let linkObject = {} this.img.forEach((el) => { linkArray.push(linkObject) linkObject['url'] = el console.log(linkObject) })los resultados del primer código son:
]
En el código a continuación está lo que quiero lograr, pero está escrito en vue y sería un problema si ingresara la cuarta imagen (enlace) en el almacenamiento de firebase
[ { link: { url: 'firstLink', scaledSize: { width: 30, height: 30 }, }, check:true }, { link: { url: 'secondLink', scaledSize: { width: 30, height: 30 }, }, check:true }, { link: { url: 'thirdLink', scaledSize: { width: 30, height: 30 }, }, check:true }, ],scaledSize y check son siempre iguales, por lo que puede ignorarlos.
Cualquier sugerencia, consejo
Con su registro, no está registrando la matriz. Empuje la estructura que desee y registre la matriz.
let linkArray = [] this.img.forEach((el) => { linkArray.push({ link: { url: el['url'], scaledSize: el.scaledSize, }, check:true } ) }) console.log(linkArray)Debería ser así. Espero que esto pueda ayudar
let linkArray = [] this.img.forEach((el) => { let linkObject = {} linkObject['url'] = el linkArray.push(linkObject) console.log(linkObject) })En JavaScript, los objetos son un tipo de referencia. Entonces, cada vez que inserte un nuevo objeto en la matriz, debe crearlo nuevo (para evitar sobrescribir el objeto anterior que creó inicialmente, lo que hace que solo se muestre el último enlace). Ver más en https://dmitripavlutin.com/value-vs-reference-javascript/
Puedes editarlo así:
let linkArray = [] this.img.forEach((el) => { let linkObject = {'url': el} linkArray.push(linkObject) console.log(linkObject) }) console.log(linkArray);