我在Javascript中遇到這個問題:我想從對象數組中獲取經度和緯度值。這一切都可以正常工作,但是當我嘗試將其保存到全局數組中時,它會覆蓋以前的每個值。結果是一個8倍於上次推送對象的數組。Javascript push Object到全局數組覆蓋以前的值?
全球陣列: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)
}
這是我第一次問一個問題在這裏。所以如果我忘記了什麼,請說出來。
你想在這裏的全局和局部變量?目前,'mark'是全局的,'_coordinates'被假定爲+ global,'_data'被假定爲+ global。 –
所以問題是你正在研究'mark'的相同實例 –