在Javascript中数组为空时在数组中添加元素不起作用

时间:2013-09-12 16:02:09

标签: javascript arrays

我在javascript数组中遇到问题...我在JS中使用Serversent事件。我将经常从服务器获取少量值...

我的任务是抓住所有细节并在下拉框中显示......

现在问题是,在第一次请求期间,我将通过逗号分隔值。 我在js中有数组对象...我将检查数组是否为空,如果是,那么我将在组合中包含值...

代码:

var varArr = new Array();


//since i am using SSE, i will executing this below part multiple times automaticall when ever server pushes data..

if(!varArr.length){
varArr[0]='somevalue';
//Printing some value in <div>
}
else{
//some task...to print in <div>
}

因为如果数组为空,我在数组中添加了一些值,我没有在div中打印任何值(//打印一些值),而是我得到(//某个任务...打印到)

2 个答案:

答案 0 :(得分:3)

也许你的意思是这样做?

var varArr = new Array();
if (varArr.length === 0) {
  varArr.push(somevalue);
  // Printing some value in <div>
} else {
  // Some task...to print in <div>
}

答案 1 :(得分:1)

感谢您发布此消息,我开始认为我对这个问题很生气。基本上似乎不可能声明一个完全空的数组。我发现以下解决方法回避了问题,声明数组中有一个虚拟值,例如

var varArr = ['dummy_value'];

甚至

var varArr = [];

然后您可以完全按照预期为其分配值。在任何一种情况下,它的长度都是1,因此检查长度可能不是检测它是否已被更改的正确方法。但是,您可以使用以下内容测试是否已更改:

if (varArr[0]=="dummy_value") ...