Duaer

表达式与代码

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(另一个数组):两边的元素并起来,去掉重复。

常见问题

在 Duaer 里 average 什么时候会报错?

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

Duaer 的 unique 和 removeDuplicates 做什么?

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

同组

变量

在 Duaer 里定义自定义变量

在 Duaer 里用自定义变量存值,并在多条数字组织中复用。

表达式

在 Duaer 里用表达式转换数据

Duaer 表达式写在 {{ }} 里,可在支持表达式的参数中调用转换方法。只做字段整理时,先用 Edit Fields(Set)。

表达式

在 Duaer 里使用内置方法和变量

Duaer 在表达式里提供读取数据的变量和按类型调用的方法。Code 节点跑的是普通 JavaScript 和原生 Luxon。

表达式

在 Duaer 表达式里使用快捷方法

在 Duaer 表达式里用 $json 读当前项,用 $("节点名") 读前面的节点,用 $now 和 $if() 处理时间和条件。

表达式

在 Duaer 里使用 HTTP 节点分页变量

Duaer 的 HTTP Request 节点在分页表达式里提供 $pageCount、$request 和 $response。这三个名字只在该节点里有效。

转换

在 Duaer 里使用数据转换方法

在 Duaer 表达式里,在值后面调用转换方法,例如 {{ $json.name.toTitleCase() }}。按数组、布尔、日期、数字、对象、字符串分组。

转换

Duaer 布尔值上的转换方法

在 Duaer 表达式里,布尔值可以判断空不空,也可以转成数字或字符串。true 转成数字是 1,false 是 0。

转换

Duaer 日期上的转换方法

Duaer 表达式里,$now 和 $today 是 Luxon 的 DateTime。字符串或数字要先 toDateTime(),再调用 format、plus、setZone。

转换

Duaer 数字上的转换方法

在 Duaer 表达式里,数字方法做取整、奇偶判断,以及转成布尔、字符串或 DateTime。round 取最接近的数,ceil 向上,floor 向下。

转换

Duaer 对象上的转换方法

在 Duaer 表达式里,对象方法用来判断字段、删字段、合并,以及把对象编成查询字符串。

转换

Duaer 字符串上的转换方法

在 Duaer 表达式里,字符串方法做大小写、截取、判断邮箱和网址,以及 base64 和 URL 编解码。

查询

在 Duaer 里用 JMESPath 查询 JSON

在 Duaer 里用 $jmespath(对象, "查询") 查询 JSON。表达式和 JavaScript Code 节点可用;Python Code 节点没有。

日期

在 Duaer 里用 Luxon 处理日期

Duaer 表达式里的日期是 Luxon 的 DateTime。$now 和 $today 直接就是。Code 节点用原生 Luxon,format() 和 plus(数量, 单位) 不能照搬。

示例

Duaer 表达式示例

这些 Duaer 示例都在表达式模式里:读当前项、补默认值、格式化日期,并在字段很多时改用 Edit Fields(Set)。

示例

Duaer 方法和变量对照

Duaer 表达式里最常用的名字:当前项用 $json,前面的节点用 $("节点名"),变量用 $vars,转换方法按数据类型分到各自的页面。