此函数用于检查给定数组(或其中的一部分)是否包含任何或所有给定值。
参数 matchall 确定数组中是否应存在所有值 (true),或者确定任何一个值是否都可以 (false)。
values数组可能包含重复项。启用matchAll后,您可以准确检查原始数组中某个值出现的次数。
提示 要检查数组是否不仅包含值,而且还包含满足特定条件的值,请使用 array_any。
array_contains_ext(array, values, [matchAll], [offset], [length]);
参数 | 类型 | 描述 |
---|---|---|
array | Array | 要在其中查找值的数组 |
values | Array | 包含要查找的值的数组。在将 matchAll 参数设置为 true 的情况下多次添加一个值,以要求某个值多次出现 (请参见示例 2)。不考虑顺序,也就是说,值不必按此处列出的顺序出现在数组中。 |
matchAll | Boolean | 可选 是所有值都应出现在数组中 (true),还是任何值都应出现在数组中 (false)。默认值为 false。 |
offset | Real | 可选 数组中的偏移量或起始索引。默认为 0。设置负值将从数组末尾开始计数。起始索引将为 array_length(array) + offset。请参阅: 偏移和长度 |
length | Real | 可选 要遍历的元素数量。默认值为 array_length() - 1。负值将向后遍历数组 (即按索引降序排列,例如 2、1、0 而不是 2、3、4)。请参阅: 偏移和长度 |
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 的值。
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来验证输入数组,将结果存储在变量中并将其打印到输出日志。