array_map_ext

此函数类似于 array_map,但它不返回新数组,而是修改作为参数传递的原始数组。

您提供了一个回调方法,该函数对数组中的所有元素运行。它可以返回应用回原始数组的任何值,从 offset 给出的索引处开始,按 length 参数的符号给出的方向。

此函数返回新的有效元素数,从给定的偏移量位置开始,并沿长度参数设置的方向。对于此函数,它是在给定范围内修改的元素数。

回调函数回调函数

传递到此函数的回调函数应采用以下参数:

语法:

function(element, index);

参数类型描述
elementAny当前数组元素
indexReal当前数组索引

此回调函数应返回一个任何将应用于数组元素的类型的值。

重要 此函数对输入数组进行突变,即直接更改。偏移量和长度参数指定的范围内的现有数组元素可能会被覆盖。出于性能原因,数组调整大小,而是返回新的有效元素数。

 

语法:

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

参数类型描述
arrayArray要使用的数组
functionFunction要在每个元素上运行的回调函数
offsetReal可选 数组中的偏移量或起始索引。设置负值将从数组的末尾开始计数。然后,起始索引将是 array_length(array) + offset。请参阅:偏移量和长度
lengthReal可选 要遍历的元素数。负值将向后遍历数组(即以索引的降序,例如 2、1、0 而不是 2、3、4)。请参阅:偏移量和长度

 

返回:

Real (the number of valid elements in the array)

 

 

例子:

var _values = [7, 4, 11, 9, 12, 21, 17, 1, 2, 3];
elements = array_map_ext(_values, sqr, 2, 5);

上面的代码首先创建一个具有一组数字的数组 values。然后,它使用 array_map_ext 将内置的 sqr 函数应用于数组范围。

在函数执行后,数组 values 将在索引 2 到索引 6 中保留原始值的平方。