判断重复内容
某位朋友说:
啊哈 其实我在做东西的时候 想把随机出来的数a东西存在list里,然后再用另一个数b在list里面比较有没有重复的值,如果没有就将这个b存进去。不过总是有问题,感觉还是没有太弄懂吧。
这个问题其实并不难,其实我不太确定“总有问题”是指什么样的问题,使用GMS2提供的内置方法"ds_list_find_index"这个方法即可。
我们首先看一下这个方法的说明:
你可以给这个方法传递一个具体的内容值,如果这个内容在你给出的列表中,则这个方法会把这个内容在列表中的位置返回给你。要注意,如果列表中有不止一个值与你给出的内容相同,则会随机给你其中一个的位置,如果你给出的内容不存在则会返回"-1",要注意这个值也可以是数组,你可以用"is_array"方法来判断这个值是不是数组。
所以我们只需要把想要判断是否重复的值b作为参数传进这个方法即可:
list = ds_list_create(); // 创建一个叫"list"的列表
ds_list_add(list,a); //在"list"列表中插入"a"
if(ds_list_find_index(list,b) = -1) //使用“ds_list_find_index"在"list"里寻找是否有"b"这个值,如果有则这个if中的条件不会成立,只有当b不在列表中时这个条件才能成立
{
ds_list_add(list,b); //在"list"列表中插入"b",只有当之前的判断成立时才触发
}
理论上,使用以上方法就可以达成这位朋友所希望的效果:)
Comments