此函数类似于 array_map,但它不返回新数组,而是修改作为参数传递的原始数组。
您提供了一个回调方法,该函数对数组中的所有元素运行。它可以返回应用回原始数组的任何值,从 offset 给出的索引处开始,按 length 参数的符号给出的方向。
此函数返回新的有效元素数,从给定的偏移量位置开始,并沿长度参数设置的方向。对于此函数,它是在给定范围内修改的元素数。
传递到此函数的回调函数应采用以下参数:
function(element, index);
参数 | 类型 | 描述 |
---|---|---|
element | Any | 当前数组元素 |
index | Real | 当前数组索引 |
此回调函数应返回一个任何将应用于数组元素的类型的值。
重要 此函数对输入数组进行突变,即直接更改。偏移量和长度参数指定的范围内的现有数组元素可能会被覆盖。出于性能原因,数组未调整大小,而是返回新的有效元素数。
array_map_ext(array, function, [offset], [length]);
参数 | 类型 | 描述 |
---|---|---|
array | Array | 要使用的数组 |
function | Function | 要在每个元素上运行的回调函数 |
offset | Real | 可选 数组中的偏移量或起始索引。设置负值将从数组的末尾开始计数。然后,起始索引将是 array_length(array) + offset。请参阅:偏移量和长度 |
length | Real | 可选 要遍历的元素数。负值将向后遍历数组(即以索引的降序,例如 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 中保留原始值的平方。