# Array 数组操作 ## 功能 Array 原型函数提供增删改查、排序、切片、扁平化、深拷贝和高阶遍历能力。 ## API 列表 | API | 说明 | | ------ | ------ | | [Array.len](/zh-hans/docs/array/len) | 返回数组元素数量。 | | [Array.to_string](/zh-hans/docs/array/to_string) | 把数组序列化为 JSON 字符串。 | | [Array.join](/zh-hans/docs/array/join) | 把数组元素按分隔符拼接成字符串。 | | [Array.each](/zh-hans/docs/array/each) | 遍历数组并执行回调。 | | [Array.pop](/zh-hans/docs/array/pop) | 删除并返回数组最后一个元素。 | | [Array.first](/zh-hans/docs/array/first) | 返回数组第一个元素;空数组返回 empty。 | | [Array.last](/zh-hans/docs/array/last) | 返回数组最后一个元素;空数组返回 empty。 | | [Array.at](/zh-hans/docs/array/at) | 按下标读取元素,支持负数从尾部读取。 | | [Array.push](/zh-hans/docs/array/push) | 把一个或多个元素追加到数组尾部。 | | [Array.shift](/zh-hans/docs/array/shift) | 删除并返回数组第一个元素。 | | [Array.unshift](/zh-hans/docs/array/unshift) | 把一个或多个元素插入数组开头。 | | [Array.insert](/zh-hans/docs/array/insert) | 在指定下标插入一个或多个元素。 | | [Array.sort](/zh-hans/docs/array/sort) | 对数组排序。未传回调时按元素字符串值排序;传入回调时按回调返回数字决定顺序。 | | [Array.reverse](/zh-hans/docs/array/reverse) | 反转数组元素顺序。 | | [Array.slice](/zh-hans/docs/array/slice) | 按起止下标复制数组片段。 | | [Array.splice](/zh-hans/docs/array/splice) | 从数组中删除指定范围,并可插入新元素。 | | [Array.concat](/zh-hans/docs/array/concat) | 合并当前数组和后续参数。数组参数会展开一层,非数组参数按元素追加。 | | [Array.contains](/zh-hans/docs/array/contains) | 判断数组是否包含指定值。 | | [Array.index_of](/zh-hans/docs/array/index_of) | 返回指定值第一次出现的下标。 | | [Array.last_index_of](/zh-hans/docs/array/last_index_of) | 返回指定值最后一次出现的下标。 | | [Array.find](/zh-hans/docs/array/find) | 返回第一个让回调结果为真的元素。 | | [Array.find_index](/zh-hans/docs/array/find_index) | 返回第一个让回调结果为真的元素下标。 | | [Array.find_last](/zh-hans/docs/array/find_last) | 从右向左返回第一个让回调结果为真的元素。 | | [Array.find_last_index](/zh-hans/docs/array/find_last_index) | 从右向左返回第一个让回调结果为真的元素下标。 | | [Array.every](/zh-hans/docs/array/every) | 判断数组中所有元素是否都让回调结果为真。 | | [Array.some](/zh-hans/docs/array/some) | 判断数组中是否存在元素让回调结果为真。 | | [Array.filter](/zh-hans/docs/array/filter) | 筛选让回调结果为真的元素。 | | [Array.map](/zh-hans/docs/array/map) | 遍历数组并把回调返回值组成新数组。 | | [Array.reduce](/zh-hans/docs/array/reduce) | 从左到右累计数组元素。 | | [Array.reduce_right](/zh-hans/docs/array/reduce_right) | 从右到左累计数组元素。 | | [Array.fill](/zh-hans/docs/array/fill) | 用指定值填充数组的一段范围。 | | [Array.flat](/zh-hans/docs/array/flat) | 按深度展开嵌套数组。 | | [Array.flat_map](/zh-hans/docs/array/flat_map) | 先 map 后按深度 1 展开映射结果。 | | [Array.keys](/zh-hans/docs/array/keys) | 返回数组下标数组。 | | [Array.values](/zh-hans/docs/array/values) | 返回数组浅拷贝。 | | [Array.entries](/zh-hans/docs/array/entries) | 返回 [index, value] 形式的条目数组。 | | [Array.clone](/zh-hans/docs/array/clone) | 返回数组深拷贝。 | | [Array.delete](/zh-hans/docs/array/delete) | 删除指定下标的元素。 | | [Array.remove_at](/zh-hans/docs/array/remove_at) | 删除并返回指定下标的元素,支持负数下标。 | | [Array.clear](/zh-hans/docs/array/clear) | 清空数组并返回原数组。 | | [Array.is_empty](/zh-hans/docs/array/is_empty) | 判断数组是否为空。 | | [Array.unique](/zh-hans/docs/array/unique) | 按首次出现顺序返回去重后的新数组。 | | [Array.chunk](/zh-hans/docs/array/chunk) | 按指定大小把数组拆成二维数组。 | ## 示例 ```bt items = [1, 2, 3] result = items.map(fn(value) { value * 2 }) // 输出:[2,4,6] print result ``` ## 注意事项 - push、pop、shift、unshift、insert、sort、reverse、splice、fill、delete、remove_at、clear 会修改原数组。 - slice、concat、map、filter、flat、flat_map、clone、values、entries、unique、chunk 返回新数组。