Estoy tratando de enumerar un conjunto de valores, que solo muestran los nuevos valores actualizados en una matriz, pero desafortunadamente solo está imprimiendo el último valor en la matriz. ¿Cómo muestro todos los valores y no solo el último?
Cuando consuelo. Salgo de longLat[itemIndex], esto es lo que veo. Deben estar en la misma matriz.
Contraído:
Expandido:
Mi código -
let longLat = [] for (let index of this.overwatchTargets) { let coordsArr = [index["longitude"], index["latitude"], index["userName"], index["dateTimeCaptured"]] longLat.push(coordsArr) for (let itemIndex in longLat) { // Update location coords this.map.getSource('data-source').setData({ "type": "FeatureCollection", "features": [{ "type": "Feature", "properties": { 'description': "Dispatcher: " + longLat[itemIndex][2] + "\n" + "\Lng/Lat\:" + longLat[itemIndex][0] + " / " + longLat[itemIndex][1] + "\n" + "\StartTime\: " + longLat[itemIndex][3] }, "geometry": { "type": "Point", "coordinates": longLat[itemIndex] <--- This should show all elements in the array, but only shows the last one } }] }); } }Está pasando una matriz de un solo elemento varias veces en lugar de pasar una sola colección de coordenadas.
Intenta crear un método de
indexToFeature(index) { const {longitude, latitude, userName, dateTimeCaptured} = index; return { "type": "Feature", "properties": { 'description': "Dispatcher: " + userName + "\n" + "\Lng/Lat\:" + longitude + " / " + latitude + "\n" + "\StartTime\: " + dateTimeCaptured }, "geometry": { "type": "Point", "coordinates": [longitude, latitude, userName, dateTimeCaptured] } }; }Entonces su cuerpo principal puede ser simplemente
this.map.getSource('data-source').setData({ "type": "FeatureCollection", "features": this.overwatchTargets.map(indexToFeature) }); para llamar a setData una vez, convirtiendo toda la matriz de overwatchTargets en una matriz de características.
Creo que separar estos dos bucles for ayudará
let longLat = [] for (let index of this.overwatchTargets) { let coordsArr = [index["longitude"], index["latitude"], index["userName"], index["dateTimeCaptured"]] longLat.push(coordsArr) } for (let itemIndex in longLat) { // Update location coords this.map.getSource('data-source').setData({ "type": "FeatureCollection", "features": [{ "type": "Feature", "properties": { 'description': "Dispatcher: " + longLat[itemIndex][2] + "\n" + "\Lng/Lat\:" + longLat[itemIndex][0] + " / " + longLat[itemIndex][1] + "\n" + "\StartTime\: " + longLat[itemIndex][3] }, "geometry": { "type": "Point", "coordinates": longLat[itemIndex] } }] }); }