Sto riscontrando questo problema in Javascript: voglio ottenere i valori di longitudine e latitudine da una matrice di oggetti. Funziona tutto bene, ma quando provo a salvarlo in un array globale, sovrascrive ogni valore precedente. Il risultato è un array con 8 volte l'ultimo oggetto spinto.L'oggetto push di Javascript sull'array globale sovrascrive i valori precedenti?
gamma globale: var _coordinates = [];
function getCoordinates()
{
mark = {};
for(var key in _data)
{
if(_data.hasOwnProperty(key)){
mark["lng"] = _data[key].long;
mark["lat"] = _data[key].lat;
}
console.log(mark); // Returns different coordinates (yay)
_coordinates.push(mark);
}
console.log(_coordinates); // All coordinates are the same (meh)
}
Questa è la mia prima volta facendo una domanda qui. Quindi se ho dimenticato qualcosa, per favore dillo.
Cosa vuoi che siano le variabili globali e locali, qui? al momento, 'mark' è globale,' _coordinates' è assunto + globale, '_data' è assunto + globale. –
quindi il problema è che stai lavorando sulla stessa istanza di 'mark' –