这个javascript代码从我的服务器加载一个csv文件并创建一个变量。
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等等。我怎样才能声明变量?
答案 0 :(得分:0)
由于window
是一个对象,您可以创建如下的动态属性:
var propertyName = 'aktivitaData' + y;
window[propertyName] = data;
假设y
为test
,您可以data
访问aktivitaDatatest
。
答案 1 :(得分: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]);
}