2017-08-11 93 views
0

你好,我不确定为什么那些空的元素仍然存在,即使我清除(或清除函数不工作猜测)。可能你们看看这个。我得到这个阵列添加其他值后进入同array.I要问什么正在发生的事情的背后不只是解决代码谢谢清除数组中的空元素

enter image description here

这个功能当过我按一下按钮,它增加了四成DVALUE阵列。

if("q"+idcount+"d" == this.id){ 
    DVALUE[dcount++] = 4; 
// alert("D ARRAY"+DVALUE.toString()); 
    } 

这就是当过我点击回复按钮,它会删除最后添加的数量

if ("d" === qwer) { 
    // alert(""+DVALUE.toString()); 
    DVALUE.pop(); 
    cleararrayD(); // also calling this function to remove empty elements when ever this if occurs 
} 

这是cleararrayD功能

function cleararrayD() { 
    lens = DVALUE.length, i; 
    for (i = 0; i < lens; i++) DVALUE[i] && DVALUE.push(DVALUE[i]); // copy non-empty values to the end of the array 
    DVALUE.splice(0, lens); 
    } 

回答

1

Okey我得到了我的问题的答案。正如你可以看到它清除数组,但我把元素放在错误的索引处。每次我点击按钮DCOUNT ++添加索引,所以我只是在做这个Dcount--在我删除功能

DVALUE[dcount++] = 4;

1

我问什么正在发生的事情的背后不只是解决代码

.lengthDVALUE的阵列不在cleararrayD()函数调用改变作为一个元素是.push()编到DVALUE阵列.splice()之前的DVALUE每个索引被称为与第二参数原始阵列.length,除去前述的元素的元素.push()编到阵列。

+0

任何建议的代码? –

+0

什么是输入和预期结果? – guest271314

+0

输入只是数字和结果有点复杂我得到所有这些数字索引应该有0-11索引,所有索引都有数字,这就是为什么我需要清空空元素,否则我得到未定义。 –