-1
在我的代碼中,我通過for循環中的另一種方法填充數組。我已經證實數組實際上已經被填充了正確的信息,但是當我嘗試返回並使用它時,它說它沒有定義,但是爲什麼?它說數組是未定義的?
代碼:
function Data(name, csv){
this.dataTable = null;
this.createDataTable(name, csv);
}
Data.prototype.createDataTable = function(name, csv){
dataTable = persistence.define(name, {
Tank1: "INT",
Tank2: "INT",
Tank3: "INT",
Tank4: "INT",
Helicopter: "INT",
});
this.fetchData(csv);
};
Data.prototype.fetchData = function(csv){
jQuery.get(csv, function(data) {
var result = $.csv.toArrays(data);
result.shift();
result.forEach(function (r) {
var joinedResult = r.join();
fillDB(joinedResult);
});
});
var test = getData(); <--- This is where I am testing the code.
var joinedResult = testlolol.join();
var splitData = joinedResult.split(";");
alert(splitData);
};
//This function will fill the database using the parsed array line from the csv file.
function fillDB(DataArray){
//Wipe local database clean
persistence.reset(function(){
//Write schema
persistence.schemaSync(function(){
//Add values from the array to their matching columns.
var data = new dataTable();
var splitData = DataArray.split(";");
data.Tank1 = splitData[0];
data.Tank2 = splitData[1];
data.Tank3 = splitData[2];
data.Tank4 = splitData[3];
data.Helicopter = splitData[4];
persistence.add(data);
persistence.flush();
});
});
}
function deleteData(column, operator, value){
persistence.flush(function(){
dataTable.all().filter(column,operator , value).destroyAll();
});
}
function addData(Tank1, Tank2, Tank3, Tank4, Helicopter){
var data = new dataTable();
data.Tank1 = Tank1;
data.Tank2 = Tank2;
data.Tank3 = Tank3;
data.Tank4 = Tank4;
data.Helicopter = Helicopter;
persistence.add(data);
persistence.flush();
}
function getData(){
var newDataArray = new Array();
dataTable.all().list(function(tasks){
tasks.forEach(function (r) {
var tTank1 = r.Tank1;
var tTank2 = r.Tank2;
var tTank3 = r.Tank3;
var tTank4 = r.Tank4;
var tHelicopter = r.Helicopter;
newDataArray.push(tTank1, tTank2, tTank3, tTank4, tHelicopter);
tempTest(newDataArray);
});
});
}
function tempTest(array){
var newDataArray = new Array();
newDataArray.push(array);
alert(newDataArray); <-- these contain the correct values
return newDataArray;
}
所以我希望有人知道這個問題的答案?也談我的代碼和/或交格式的其他批評亦歡迎:)
你不'裏面返回的getData什麼()' –
我沒找到一個地方,你的數組未定義。 – FSou1
Arghhh! Khanh To是對的,這是我的錯誤。我一直在努力與之前的不同(http://stackoverflow.com/questions/17992837/array-refuses-to-be-returned-with-values/17993039),所以我沒有看到這種情況。對不起,愚蠢的錯誤.. –