判断重复内容

某位朋友说:

啊哈 其实我在做东西的时候 想把随机出来的数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",只有当之前的判断成立时才触发
}

理论上,使用以上方法就可以达成这位朋友所希望的效果:)

2021-04-28 15:15
Comments
Write a Comment