Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除可能有多个指向它的指针的对象_Javascript_Arrays_Pointers - Fatal编程技术网

Javascript 删除可能有多个指向它的指针的对象

Javascript 删除可能有多个指向它的指针的对象,javascript,arrays,pointers,Javascript,Arrays,Pointers,我正在制作一个游戏,游戏中有很多角色都是物体。当一个字符死亡时,我也想删除它的所有指针,问题是我不知道这些指针有多少或在哪里。i、 e角色A可能将角色B存储在其视野阵列中,或者该角色可能保存在物理引擎位于地面阵列上的对象中。有没有办法强制将对象从其所在的所有数组中删除 character.prototype._delete_self () { this.delete_everywhere(); } 我曾尝试在角色可能所在的所有数组中运行,但这需要大量的性能。我还遇到了一个问题,如果我使

我正在制作一个游戏,游戏中有很多角色都是物体。当一个字符死亡时,我也想删除它的所有指针,问题是我不知道这些指针有多少或在哪里。i、 e角色A可能将角色B存储在其视野阵列中,或者该角色可能保存在物理引擎位于地面阵列上的对象中。有没有办法强制将对象从其所在的所有数组中删除

character.prototype._delete_self () {
    this.delete_everywhere();
}
我曾尝试在角色可能所在的所有数组中运行,但这需要大量的性能。我还遇到了一个问题,如果我使用值I运行数组,for循环很容易失去同步,因为它变短了。是否可以先删除数组中的位置,然后再压缩数组

var arr = new Array(1,2,3,4,5);
arr[3]=null;
document.write("1: "+arr);
arr.compress();
document.write("2: "+arr);
该文件:

1: 1,2,,4,5
2: 1,2,4,5

如果你唯一的问题是在一个循环中改变一个数组,只需以相反的顺序对它进行迭代。。。谢谢你的一般问题,看起来你想要一个对对象的弱引用。只有WeakMaps提供了这一功能,但我不知道这一功能在这里的应用情况如何,它仍然是实验性的: