Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
Arrays 在数组中查找空插槽并使用它_Arrays_Slots_Squirrel - Fatal编程技术网

Arrays 在数组中查找空插槽并使用它

Arrays 在数组中查找空插槽并使用它,arrays,slots,squirrel,Arrays,Slots,Squirrel,所以,我有一个问题,我已经在松鼠一段时间了。 我想创建一个数组中的所有东西,例如: local array = [1, 2, 3, -1, 5, -1, 7, -1]; 看看那些是-1的,我只想用其中的一个,第一个出现的(在这个例子中是3到5) 在我的脚本中,当有人销毁某个对象时,它会将该对象id设置为-1,而不是一个常规数字,因为否则它在尝试使用该对象时只会出错。我真的不知道我是否解释得很好 另一个例子是当玩家连接到某个游戏服务器时,我们会连接id为0、1、3和4的玩家,所以当下一个玩家连接

所以,我有一个问题,我已经在松鼠一段时间了。 我想创建一个数组中的所有东西,例如:

local array = [1, 2, 3, -1, 5, -1, 7, -1];
看看那些是-1的,我只想用其中的一个,第一个出现的(在这个例子中是3到5)

在我的脚本中,当有人销毁某个对象时,它会将该对象id设置为-1,而不是一个常规数字,因为否则它在尝试使用该对象时只会出错。我真的不知道我是否解释得很好

另一个例子是当玩家连接到某个游戏服务器时,我们会连接id为0、1、3和4的玩家,所以当下一个玩家连接时,他们会得到id为2的玩家。这就是我对阵列的追求

我试过几种方法,唯一最接近的方法是:

for(local i=1; i < Array.len(); i++){
    if(Array[i].id != -1){
      count++;
    } else {
      count = i;
    }
}
for(本地i=1;i
但这一个的问题是它只接受最后一个ID并替换它,所以我们有对象0、1、2和3 如果我销毁3并创建一个新的,没问题。如果我销毁0、1或2,然后创建一个新的,它将不会占用该插槽,而是使用数字4,这将不起作用

感谢阅读,希望任何人都能帮助我


已解决:
这真的很简单,对于其他有同样问题的人来说,这就是我所做的。现在继续,这会变得非常棘手。
我所做的是在else语句中添加了一个“break”;代码如下:

for(local i=1; i < Array.len(); i++){
    if(Array[i].id != -1){
        count++;
    } else {
        count = i;
        break; // THIS
    }
}
for(本地i=1;i
是的,后来我确实打了自己的头

array.find(-1)
从:

对数组中的值执行线性搜索。返回索引 如果发现该值为null,则为

从:

对数组中的值执行线性搜索。返回索引 如果发现该值为null,则为


将你的解决方案作为答案接受它,将问题标记为已正确解决。将你的解决方案作为答案接受它,将问题标记为已正确解决。