2

私は問題を抱えています。頻繁に追加および削除される関数の配列があります。

しかし、配列に対して foreach を実行すると、インデックスが存在しないと表示されます。

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

削除する: delete arr[indexToRemove];

今は機能しないので、foreachを使用します for (key in arr)

インデックスでオーバーフローする可能性があると感じているので、これを防ぐために、空の配列位置を見つけて、その中の項目を再配置したいと思います。これは私がクリーンアップATMのために考えていることです。

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

より良い解決策はありますか? 関数スロットの空の配列は null のように見えますか?

4

1 に答える 1