为什么不能在Javascript中重用清空数组?

时间:2015-09-21 07:58:52

标签: javascript arrays

我用一些编程语言编程,不时我也有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

- 编辑 -

  1. 我看到这个问题被标记为重复,也许就是这样,我无法找到适合这种情况的问题。

  2. 我从你列出的答案中看到可能问题是同步的,所以我必须要了解这个话题

0 个答案:

没有答案