> For the complete documentation index, see [llms.txt](https://doc.duaer.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.duaer.com/zh/code/builtin/data-transformation-functions/arrays.md).

# Duaer 数组上的转换方法

在 Duaer 表达式里，数组方法写在数组后面，例如 {{ $json.ids.unique() }}。average、max、min 遇到非数字会报错。
## 在 Duaer 表达式里调用

这些方法作用在数组上。一部分是 Duaer 的扩展，Code 节点里没有同名实现。

## 方法

- append(元素...)：加到末尾并返回数组。
- average()：数字的平均值。有非数字会报错。
- chunk(长度)：切成等长的子数组。
- compact()：去掉 null、空字符串和 undefined。
- concat(其他数组...)：接到后面。
- difference(另一个数组)：留下当前数组有、另一个没有的元素。
- filter(函数)：留下函数返回 true 的元素。
- find(函数)：第一个符合条件的元素。没有则是 undefined。要全部匹配用 filter()。
- first()、last()：第一项、最后一项。
- includes(元素)、indexOf(元素)：是否包含，以及第一次出现的位置。找不到是 -1，位置从 0 开始。
- intersection(另一个数组)：两边都有的元素。
- isEmpty()、isNotEmpty()：没有元素，或 null、undefined，算空。
- join(分隔符)：合成一个字符串。和 split() 相反。
- length：元素个数。
- map(函数)：对每个元素算出新数组。
- max()、min()：最大、最小的数字。有非数字会报错。
- pluck(字段名...)：从每个对象里取出这些字段。不是对象或没有该字段的元素会被忽略。
- randomItem()：随机一项。
- reduce(函数, 初始值)：收成一个值。
- removeDuplicates(键?)、unique()：去掉重复元素。
- renameKeys(原名, 新名)：改数组里对象的字段名。可以连续写多对。
- reverse()：倒序。
- slice(起, 止)：取一段。
- smartJoin(键字段, 值字段)：每个对象提供一对键和值，合成一个对象。
- sort(比较函数?)：字符串可直接排序。数字和对象要给比较函数。
- sum()：数字求和。
- mergeIntoObject(另一个对象数组)：按键合并两组对象。长度不同时保留更长的那组里多出来的元素。
- toJsonString()：变成 JSON 字符串。
- toSpliced(起点, 删除个数, 新元素...)：在指定位置增删，返回新数组。
- toString()：用逗号拼成字符串。要别的分隔符用 join()。
- union(另一个数组)：两边的元素并起来，去掉重复。
## Questions

### 在 Duaer 里 average 什么时候会报错？

在 Duaer 表达式里，average()、max()、min()、sum() 要求元素是数字。有非数字就会报错。

### Duaer 的 unique 和 removeDuplicates 做什么？

在 Duaer 表达式里去掉数组里的重复元素。pluck(字段名) 从每个对象取出指定字段，忽略不是对象或没有该字段的元素。

