我用一些编程语言编程,不时我也有Javescript的经验。
在这里我的情况:我有一个数组作为全局变量(myArray)。当某些事件发生时,我需要用数据库中的数据重新填充myArray。所以我编写了myFunction,其中myArray被清空以删除最终的旧数据,然后再次填充新数据。
如果我不删除数组内容,一切正常,但(当然)数组可能也包含较旧的数据,并且每次调用函数时都会增长,我不想这样做。
我不明白以下内容: 如果我在myFunction启动时删除了myArray的内容,我再也无法重新填充 ......
这是我的代码的简化版本,感谢大家的帮助:
myArray = []; // global variable
// IN MYFUNCTION
//first empty the array, then refill it with data from DB
{
// Let's empty myArray, tried all 4 different ways to do that -- no difference:
// Way 1)
//while(myArray.length > 0) { myArray.pop(); }
//OR Way 2)
//myArray.length=0;
//OR Way 3)
//myArray.splice(0,myArray.length);
//OR Way 4)
myArray = [];
dataNamesQuery = "SELECT something FROM db according user's input";
DatabaseInterface.get_data_now(dataNamesQuery).get({}, function(result){
allDataNames = result.Results;
for(i in allDataNames){
myArray.push(allDataNames[i].something);
}
});
}
//IF I DELETE THE CONTENT OF MYARRAY, THIS WILL PRINT NOTHING;
//ELSE IF I DON'T DELETE ITS CONTENT, THE ARRAY CONTAINS NEW AND OLD DATA
for(ix in myArray){
console.log("in myArray got " + myArray[ix]);
}
} //MYFUNCTION END
- 编辑 -
我看到这个问题被标记为重复,也许就是这样,我无法找到适合这种情况的问题。
我从你列出的答案中看到可能问题是同步的,所以我必须要了解这个话题