即时通讯有问题,我有一系列经常添加和删除的功能.
但是,当我在数组上做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;
Run Code Online (Sandbox Code Playgroud)
有没有更好的解决方案,并且空数组的函数插槽看起来像null?
不要使用for...in循环迭代数组 ; 使用标准计数for循环.请使用Array.push()而不是arr[arr.length] = cont添加新值.也不要用于delete从数组中删除元素 ; 用Array.splice().
输入:arr.push(cont);
去掉:arr.splice(indexToRemove, 1);
| 归档时间: |
|
| 查看次数: |
2811 次 |
| 最近记录: |