array_contains_ext

此函数用于检查给定数组(或其中的一部分)是否包含任何或所有给定值。

参数 matchall 确定数组中是否应存在所有值 (true),或者确定任何一个值是否都可以 (false)。

values数组可能包含重复项。启用matchAll后,您可以准确检查原始数组中某个值出现的次数。

提示 要检查数组是否不仅包含值,而且还包含满足特定条件的值,请使用 array_any

 

语法:

array_contains_ext(array, values, [matchAll], [offset], [length]);

参数类型描述
arrayArray要在其中查找值的数组
valuesArray包含要查找的值的数组。在将 matchAll 参数设置为 true 的情况下多次添加一个值,以要求某个值多次出现 (请参见示例 2)。不考虑顺序,也就是说,值不必按此处列出的顺序出现在数组中。
matchAllBoolean可选 是所有值都应出现在数组中 (true),还是任何值都应出现在数组中 (false)。默认值为 false
offsetReal可选 数组中的偏移量或起始索引。默认为 0。设置负值将从数组末尾开始计数。起始索引将为 array_length(array) + offset。请参阅: 偏移和长度
lengthReal可选 要遍历的元素数量。默认值为 array_length() - 1。负值将向后遍历数组 (即按索引降序排列,例如 2、1、0 而不是 2、3、4)。请参阅: 偏移和长度

 

返回:

Boolean

 

示例1:检查数组中是否存在任何给定值

hand = ["1", "1", "4", "J", "J", "Q", "7", "10", "K", "8", "7", "8", "5"];
var _high_cards = ["A", "K", "Q", "J"];
var _any_high_cards = array_contains_ext(hand, _high_cards);
show_debug_message(_any_high_cards);

上面的代码首先创建一个具有 13 个值的数组hand 。然后,它定义另一个数组 _high_cards,该数组定义哪些牌被视为"high"卡片。接下来,检查使用 array_contains_ext 和 hand 数组中的任何一个,结果存储在临时变量_any_high_cards中。最后,调试消息显示变量 _any_high_cards 的值。

 

示例2:检查数组中是否存在所有值

inputs = ["left", "right", "left", "left", "up", "down", "right"];
var _required_inputs = ["left", "left", "left"];
var _input_valid = array_contains_ext(inputs, _required_inputs, true);
show_debug_message(_input_valid);

上面的代码创建一个包含输入序列的数组。然后,它创建另一个数组,其中包含使序列有效的输入(即,出现 3 次"left")。然后,它调用array_contains_ext来验证输入数组,将结果存储在变量中并将其打印到输出日志。