2012-01-27 11 views
0

JavaScriptでオブジェクトを使用してユーザーID(キー)とGPS座標の配列を格納しようとしていますが、新しい座標が追加されるたびにそれはデータベースから取り出されます)、追加するのではなく配列の以前の座標(値)を上書きします。JavaScript内のキーと値のペアを上書きするオブジェクト

$(function() { 
     $(document).ready(function(){ 
      setInterval(function(){ 
       $.ajax({          
        url: 'api.php',     //the script to call to get data   
        data: "",       
        dataType: 'json',    //data format  
        success: function(data){   //on recieve of reply       
         var loc = {}; 

         user_id = data[0]; 
         lati = data[1];    //get id 
         longi = data[2];   //get name 

         var myLatlngt = 'new google.maps.LatLng(' + lati + ',' + longi + ')'; 

         if (typeof loc[user_id] === 'undefined') { 
          loc[user_id] = []; 
          } 

         loc[user_id].push(myLatlngt); 
         console.log('loc :::', loc); 

ここでは、ログです:

Resource interpreted as Other but transferred with MIME type undefined. 
map2.php:50loc ::: Object  
    86ad04fb-1da5-4118-8b00-942676d62387: Array[1] 
     0: "new google.maps.LatLng(51,-82)" 
     length: 1 
    __proto__: Array[0] 
__proto__: Object 

長い数(86ad04は...)(キー)ユーザーIDですが、私は新しい座標を送信する場合には、追加の代わりに上書きされます。私が得ることができるすべての助けに感謝します。

おかげ

答えて

2

あなたは関数を入力するたびにlocを空にするので:

var loc = {}; 
+0

私はそれが何か簡単だろうと知っていました。早速のご返事ありがとうございます! – mkyong

+0

歓迎します;-) –

0

あなたは、その状態が複数のAjaxリクエストの上に保存されるように、あなたのAJAXコールバックのvar loc = {};外を配置する必要があります。

関連する問題