array_copy_while

该函数创建了一个新的数组,并将输入数组的元素添加到其中,同时(或只要)判断函数返回true

只要判断函数返回 false,该函数就停止执行。判断函数为其返回 false 的第一个元素以及其后的所有元素都不会添加到新数组中。

注意 此函数与 array_filter 相同,不同之处在于此函数在第一次判断函数返回 false 后停止执行。另一方面,array_filter 继续检查元素,即使在遇到判断函数返回 false 的元素之后也是如此。

语法:

array_copy_while(array, function, [offset], [length]);

参数类型描述
arrayArray要使用的数组
functionFunctionThe Predicate Method to run on each element
offsetReal可选 数组中的偏移量或起始索引。设置负值将从数组的末尾开始计数。然后,起始索引将是 array_length(array) + offset。请参阅:偏移量和长度
lengthReal可选 要遍历的元素数。负值将向后遍历数组(即以索引的降序,例如2、1、0而不是2、3、4)。请参阅:偏移量和长度

 

返回:

Array

 

例子:

array = ["1", "2", "3", "STOP", "4", "5", "6", "STOP", "7", "8", "9"];
array_up_to_stop = array_copy_while(array, function(element, index)
{
    return (element != "STOP");
}, -1, -infinity);

上面的代码首先创建一个数组 array,该数组存储包含前 9 位数字的字符串,其间带有字符串 "STOP"。

然后,函数 array_copy_while 是调用该数组,如果 element 不等于字符串 "STOP",则使用判断函数返回 true

偏移量参数设置为 -1,长度设置为 -infinity。这将从最后一个数组索引开始向后迭代这些值。

最后,结果存储在变量 array_up_to_stop 中,该变量应该只包含按该顺序排列的 "9""8""7",因为该数组是反向遍历的。