2017-06-10 83 views
0

此javascript代碼從我的服務器加載一個csv文件並創建一個變量。Javascript循環 - 創建變量名

var dateObj = new Date(); 
var day = dateObj.getUTCDate(); 
var month = dateObj.getUTCMonth() + 1; 
var year = dateObj.getUTCFullYear(); 
var zpetne = 5; 

    function load() { 
     for (var y = month - zpetne; y < month; y++) { 
     $.ajax({ 
      url: 'LINK_TO_SITE/CSV_FILES'+ y +'-17.csv', 
      dataType: 'text', 
     }).done(systemCZ); 

     function systemCZ(data) { 
      window.aktivitaData = data; 
     } 
     } 
    } 

問題是循環的每個運行都會覆蓋aktivitaData中的先前數據。我試圖編輯我的變量到

window.aktivitaData + y = data; 

但它不起作用。我找不到任何解決方案來獲取aktivitaData1,aktivitaData2等。我如何聲明這樣的變量?

+1

使它的陣列,並且每個循環值推到端 – Dale

回答

0

您可以使用數組來跟蹤數據的歷史。可以使用.push()它由索引等aktivitaData[0]添加到陣列中,並訪問數據的第一數據像下面

var aktivitaData = []; //first intialize it as empty 
 
var dateObj = new Date(); 
 
var day = dateObj.getUTCDate(); 
 
var month = dateObj.getUTCMonth() + 1; 
 
var year = dateObj.getUTCFullYear(); 
 
var zpetne = 5; 
 

 
function load() { 
 
    for (var y = month - zpetne; y < month; y++) { 
 
    $.ajax({ 
 
     url: 'LINK_TO_SITE/CSV_FILES' + y + '-17.csv', 
 
     dataType: 'text', 
 
    }).done(systemCZ); 
 

 
    function systemCZ(data) { 
 
     window.aktivitaData.push(data); 
 
    } 
 
    } 
 
} 
 

 
function printAll() { 
 
    for (var i = 0; i < window.aktivitaData.length; i++) 
 
    console.log(window.aktivitaData[i]); 
 
}

0

由於window是一個對象,你可以這樣創建動態屬性:

var propertyName = 'aktivitaData' + y; 
window[propertyName] = data; 

假設ytest你可以像aktivitaDatatest訪問data