清空空槽的函数数组

时间:2013-06-13 18:11:01

标签: javascript arrays

即时出现问题,我有一系列经常添加和删除的功能。

但是当我在数组上做一个foreach时,它说索引不存在。

输入: arr[arr.length] = function () { Func() };

删除: delete arr[indexToRemove];

因为现在不工作所以我使用foreach for (key in arr)

我感觉有可能在索引上溢出,所以为了防止这种情况,我想找到空数组位置并重新定位其中的项目。 这就是我正在考虑清理的问题。

    var temp = new Array();
    var count = 0;
    for (key in arr) {
        if (arr[key] != null) {
            temp[count] = arr[key];
            count++;
        }
    }
    arr = temp;

有没有更好的解决方案,并且空数组的函数插槽看起来像null?

1 个答案:

答案 0 :(得分:7)

Don't use a for...in loop to iterate over an array;使用标准计数for循环。请使用Array.push()代替arr[arr.length] = cont来添加新值。 don't use delete to remove an element from an array;使用Array.splice()


输入:arr.push(cont);
删除:arr.splice(indexToRemove, 1);