Skip to content

Array#

Array.append()#

Description: 向数组末尾添加新元素。类似于 push(),但返回修改后的数组。建议使用展开语法代替(参见示例)。

Syntax: Array.append(elem1, elem2?, ..., elemN?)

Returns: Array

Source: Custom n8n functionality

Parameters:

  • elem1 (any) - 要追加的第一个元素
  • elem2 (any) - 可选 - 要追加的第二个元素
  • elemN (any) - 可选 - 要追加的第 N 个元素

Examples:

1
2
// arr = ['forget', 'me']
arr.append('not') //=> arr = ['forget', 'me', 'not']
1
2
3
4
5
// arr = [9, 0, 2]
arr.append(1, 0) //=> [9, 0, 2, 1, 0]

// Consider using spread syntax instead
[...arr, 1, 0]  //=> [9, 0, 2, 1, 0]

Array.average()#

Description: 返回数组中数字的平均值。如果包含非数字元素则抛出错误。

Syntax: Array.average()

Returns: Number

Source: Custom n8n functionality

Examples:

1
2
// arr = [12, 1, 5]
arr.average() //=> 6

Array.chunk()#

Description: 将数组拆分为由子数组组成的数组,每个子数组包含指定长度的元素

Syntax: Array.chunk(length)

Returns: Array

Source: Custom n8n functionality

Parameters:

  • length (Number) - 每个分块中的元素数量

Examples:

1
2
// arr = [1, 2, 3, 4, 5, 6]
arr.chunk(2) //=> [ [1,2], [3,4], [5,6] ]

Array.compact()#

Description: 移除数组中的所有空值。null""undefined 被视为空值。

Syntax: Array.compact()

Returns: Array

Source: Custom n8n functionality

Examples:

1
2
// arr = [2, null, 1, ""]
arr.compact() //=> [2, 1]

Array.concat()#

Description: 将一个或多个数组连接到基础数组的末尾

Syntax: Array.concat(array2, array3?, ... arrayN?)

Returns: Array

Source: JavaScript function

Parameters:

  • array2 (Array) - 要连接到基础数组末尾的第一个数组
  • array3 (Array) - 可选 - 要连接到基础数组末尾的第二个数组
  • arrayN (Array) - 可选 - 要连接到基础数组末尾的第 N 个数组

Examples:

1
2
// arr1 = ['Nathan', 'Jan']
arr1.concat(['Steve', 'Bill']) // ['Nathan', 'Jan', 'Steve', 'Bill']
1
2
3
4
// arr1 = [5, 4]
// arr2 = [100, 101]
// arr3 = ['a', 'b']
arr1.concat(arr2, arr3) // [5, 4, 100, 101, 'a', 'b']

Array.difference()#

Description: 比较两个数组。返回基础数组中不存在于 otherArray 中的所有元素。

Syntax: Array.difference(otherArray)

Returns: Array

Source: Custom n8n functionality

Parameters:

  • otherArray (Array) - 用于与基础数组进行比较的数组

Examples:

1
2
// arr = [1, 2, 3]
arr.difference([2, 3]) //=> [1]

Array.filter()#

Description: 返回一个仅包含满足条件的元素的数组。条件是一个返回 truefalse 的函数。

Syntax: Array.filter(function(element, index?, array?), thisValue?)

Returns: Array

Source: JavaScript function

Parameters:

  • function() (function) - 对每个数组元素执行的函数。如果返回 true,则保留该元素。建议使用箭头函数表示法以节省空间。
  • element (any) - 当前元素的值
  • index (Number) - 可选 - 当前元素在数组中的位置(从 0 开始)
  • array (Array) - 可选 - 正在处理的数组。很少需要使用。
  • thisValue (any) - 可选 - 作为函数 this 值传递的值。很少需要使用。

Examples:

1
2
3
// Keep ages over 18 (using arrow function notation):
// ages = [12, 33, 16, 40]
ages.filter(age => (age > 18)) //=> [33, 40]
1
2
3
4
5
6
// Keep names under 5 letters long (using arrow function notation):
// names = ['Nathan', 'Bob', 'Sebastian']
ages.filter(age => (age.length < 5)) //=> ["Bob"]

// Or using traditional function notation:
ages.filter(function(age){return age.length < 5}) //=> ["Bob"]
1
2
3
// Keep numbers at odd indexes
// nums = [1, 7, 3, 10, 5]
ages.filter((num, index) => {return index%2 != 0}) //=> [7, 10]

Array.find()#

Description: 返回数组中第一个满足条件的元素。条件是一个返回 truefalse 的函数。如果没有找到匹配项,则返回 undefined

如果需要所有匹配的元素,请使用 filter()

Syntax: Array.find(function(element, index?, array?), thisValue?)

Returns: any

Source: JavaScript function

Parameters:

  • function() (function) - 对每个数组元素执行的函数。一旦返回 true,该元素将被返回。建议使用箭头函数表示法以节省空间。
  • element (any) - 当前元素的值
  • index (Number) - 可选 - 当前元素在数组中的位置(从 0 开始)
  • array (Array) - 可选 - 当前元素所在的数组。很少需要使用。
  • thisValue (any) - 可选 - 作为函数 this 值传递的值。很少需要使用。

Examples:

1
2
3
// Find first age over 18 (using arrow function notation):
// ages = [12, 33, 16, 40]
ages.find(age => (age > 18)) //=> 33
1
2
3
4
5
6
// Find first name under 5 letters long (using arrow function notation):
// names = ['Nathan', 'Bob', 'Sebastian']
ages.find(age => (age.length < 5)) //=> 'Bob'

// Or using traditional function notation:
ages.find(function(age){return age.length < 5}) //=> 'Bob'

Array.first()#

Description: 返回数组的第一个元素

Syntax: Array.first()

Returns: any

Source: Custom n8n functionality

Examples:

1
2
// arr = ['quick', 'brown', 'fox']
arr.first() //=> 'quick'

Array.includes()#

Description: 如果数组包含指定的元素,则返回 true

Syntax: Array.includes(element, start?)

Returns: Boolean

Source: JavaScript function

Parameters:

  • element (any) - 要在数组中搜索的值
  • start (Number) - 可选 - 开始搜索的索引位置

Examples:

1
2
3
// names = ["Bob", "Bill", "Nat"];
names.includes("Nat") //=> true
names.includes("Nathan") //=> false

Array.indexOf()#

Description: 返回数组中第一个匹配元素的位置,如果未找到该元素则返回 -1。位置从 0 开始。

Syntax: Array.indexOf(element, start?)

Returns: Number

Source: JavaScript function

Parameters:

  • element (any) - 要查找的值
  • start (Number) - 可选 - 开始搜索的索引位置

Examples:

1
2
// names = ["Bob", "Bill", "Nat"];
names.indexOf("Nat") //=> 2
1
2
// names = ["Bob", "Bill", "Nat"];
names.indexOf("Nathan") //=> -1

Array.intersection()#

Description: 比较两个数组。返回基础数组中同时存在于另一个数组中的所有元素。

Syntax: Array.intersection(otherArray)

Returns: Array

Source: Custom n8n functionality

Parameters:

  • otherArray (Array) - 用于与基础数组进行比较的数组

Examples:

1
2
// arr = [1, 2]
arr.intersection([2, 3]) //=> [2]

Array.isEmpty()#

Description: 如果数组没有元素或为 null,则返回 true

Syntax: Array.isEmpty()

Returns: Boolean

Source: Custom n8n functionality

Examples:

1
2
// arr = []
arr.isEmpty() //=> true
1
2
// arr = ['quick', 'brown', 'fox']
arr.isEmpty() //=> false

Array.isNotEmpty()#

Description: 如果数组至少有一个元素,则返回 true

Syntax: Array.isNotEmpty()

Returns: Boolean

Source: Custom n8n functionality

Examples:

1
2
// arr = ['quick', 'brown', 'fox']
arr.isNotEmpty() //=> true
1
2
// arr = []
arr.isNotEmpty() //=> false

Array.join()#

Description: 将数组的所有元素合并为一个字符串,元素之间可使用可选的分隔符。

split() 相反。

Syntax: Array.join(separator?)

Returns: String

Source: JavaScript function

Parameters:

  • separator (String) - 可选 - 要在每个元素之间插入的字符

Examples:

1
2
// arr = ['Wind', 'Water', 'Fire']
a.join(" + ") //=> 'Wind + Water + Fire'
1
2
3
// arr = ['Wind', 'Water', 'Fire']
a.join() //=> 'Wind,Water,Fire'
a.join("") //=> 'WindWaterFire'

Array.last()#

Description: 返回数组的最后一个元素

Syntax: Array.last()

Returns: any

Source: Custom n8n functionality

Examples:

1
2
// arr = ['quick', 'brown', 'fox']
arr.last() //=> 'fox'

Array.length#

Description: 数组中的元素数量

Syntax: Array.length

Returns: Number

Source: JavaScript function

Examples:

1
2
// names = ["Bob", "Bill", "Nat"];
names.length //=> 3

Array.map()#

Description: 通过对原始数组的每个元素应用函数来创建一个新数组

Syntax: Array.map(function(element, index?, array?), thisValue?)

Returns: Array

Source: JavaScript function

Parameters:

  • function() (function) - 对每个数组元素执行的函数。在新数组中,该函数的输出将替代原来的元素。建议使用箭头函数表示法以节省空间。
  • element (any) - 当前元素的值
  • index (Number) - 可选 - 当前元素在数组中的位置(从 0 开始)
  • array (Array) - 可选 - 当前元素所在的数组。很少需要使用。
  • thisValue (any) - 可选 - 作为函数 this 值传递的值。很少需要使用。

Examples:

1
2
3
// Double all numbers (using arrow function notation):
// nums = [12, 33, 16]
nums.map(num => num*2) //=> [24, 66, 32]
1
2
3
4
5
6
// Convert elements to uppercase (using arrow function notation):
// words = ['hello', 'old', 'chap']
words.map(word => word.toUpperCase()) //=> ['HELLO', 'OLD', 'CHAP']]

// Or using traditional function notation:
words.map(function(word){return word.toUpperCase()}) //=> ['HELLO', 'OLD', 'CHAP']]

Array.max()#

Description: 返回数组中的最大数字。如果包含非数字元素则抛出错误。

Syntax: Array.max()

Returns: Number

Source: Custom n8n functionality

Examples:

1
2
// arr = [1, 12, 5]
arr.max() //=> 12

Array.min()#

Description: 返回数组中的最小数字。如果包含非数字元素则抛出错误。

Syntax: Array.min()

Returns: Number

Source: Custom n8n functionality

Examples:

1
2
// arr = [12, 1, 5]
arr.min() //=> 1

Array.pluck()#

Description: 返回一个数组,包含数组中每个 Object 的指定字段值。会忽略不是 Object 或没有匹配字段名的数组元素。

Syntax: Array.pluck(fieldName1?, fieldName2?, …)

Returns: Array

Source: Custom n8n functionality

Parameters:

  • fieldName1 (String) - 可选 - 要获取值的第一个键名
  • fieldName2 (String) - 可选 - 要获取值的第二个键名

Examples:

1
2
// arr = [{'name':'Nathan','age':42},{'name':'Jan','city':'Berlin'}]
arr.pluck('name') //=> ["Nathan", "Jan"]
1
2
// arr = [{'name':'Nathan','age':42},{'name':'Jan','city':'Berlin'}]
arr.pluck('age') //=> [42]

Array.randomItem()#

Description: 从数组中随机返回一个元素

Syntax: Array.randomItem()

Returns: any

Source: Custom n8n functionality

Examples:

1
2
3
// arr = ['quick', 'brown', 'fox']
arr.randomItem() //=> 'brown'
arr.randomItem() //=> 'quick'

Array.reduce()#

Description: 通过对每个元素应用函数将数组缩减为单个值。该函数将当前元素与之前元素的缩减结果组合,产生新的结果。

Syntax: Array.reduce(function(prevResult, currentElem, currentIndex?, array?), initResult)

Source: JavaScript function

Parameters:

  • function() (function) - 对每个数组元素执行的函数。接收累积结果和当前元素,返回新的累积结果。建议使用箭头函数表示法以节省空间。
  • prevResult (any) - 对前面元素应用函数后的累积结果。处理第一个元素时,该值被设置为 initResult(如果未指定则为数组的第一个元素)。
  • currentElem (any) - 当前正在处理的数组值
  • currentIndex (Number) - 可选 - 当前元素在数组中的位置(从 0 开始)
  • array (Array) - 可选 - 正在处理的数组。很少需要使用。
  • initResult (any) - 可选 - prevResult 的初始值,在对第一个数组元素调用函数时使用。未指定时,将设置为数组的第一个元素,且第一次函数调用将在第二个数组元素上执行而非第一个。

Examples:

1
2
3
// Sum numbers (using arrow function notation):
// nums = [12, 33, 16]
nums.reduce((result, num) => (result+num), 0) //=> 61
1
2
3
4
5
6
// Join letters and uppercase (using arrow function notation):
// chars = ['a', 'b', 'c']
chars.reduce((result, char) => (result+char.toUpperCase()), '') //=> 'ABC'

// Or using traditional function notation:
chars.reduce(function(result, char){return result+char.toUpperCase()}, '') //=> 'ABC'

Array.removeDuplicates()#

Description: 移除数组中所有重复出现的元素

Syntax: Array.removeDuplicates(keys?)

Returns: Array

Source: Custom n8n functionality

Parameters:

  • keys (String) - 可选 - 用于 Object 数组。指定一个键名或逗号分隔的键名列表来限制检查范围。省略时检查所有键。

Examples:

1
2
// arr = ['quick', 'brown', 'quick']
arr.removeDuplicates() //=> ['quick', 'brown']

Array.renameKeys()#

Description: 更改数组中所有 Object 的匹配键名(字段名)。通过添加额外参数可以重命名多个键,即 from1, to1, from2, to2, ...

Syntax: Array.renameKeys(from, to)

Returns: Array

Source: Custom n8n functionality

Parameters:

  • from (String) - 要重命名的键名
  • to (String) - 新的键名

Examples:

1
2
// arr = [{'name':'bob'},{'name':'meg'}]
arr.renameKeys('name', 'x') //=> [{"x": "bob"},{"x": "meg"}]]

Array.reverse()#

Description: 反转数组中元素的顺序

Syntax: Array.reverse()

Returns: Array

Source: JavaScript function

Examples:

1
2
// arr = ['dog', 'bites', 'man']
arr.reverse() //=> ['man', 'bites', 'dog']

Array.slice()#

Description: 返回数组的一部分,从 start 索引开始到 end 索引之前(不包含 end)。索引从 0 开始。

Syntax: Array.slice(start, end)

Returns: Array

Source: JavaScript function

Parameters:

  • start (Number) - 可选 - 开始位置。位置从 0 开始。负数表示从数组末尾倒数。
  • end (Number) - 可选 - 截取到的位置。该位置的元素不包含在内。负数表示从数组末尾选取。省略时将提取到数组末尾。

Examples:

1
2
// arr = [1, 2, 3, 4, 5]
arr.slice(2, 4) //=> [3, 4]
1
2
// arr = [1, 2, 3, 4, 5]
arr.slice(2) //=> [3, 4, 5]
1
2
// arr = [1, 2, 3, 4, 5]
arr.slice(-2) //=> [4, 5]

Array.smartJoin()#

Description: 从 Object 数组创建单个 Object。数组中的每个 Object 为返回的 Object 提供一个字段。数组中的每个 Object 必须包含一个键名字段和一个值字段。

Syntax: Array.smartJoin(keyField, nameField)

Returns: Object

Source: Custom n8n functionality

Parameters:

  • keyField (String) - 每个 Object 中包含键名的字段
  • nameField (String) - 每个 Object 中包含值的字段

Examples:

1
2
// arr => [{'field':'age','value':2},{'field':'city','value':'Berlin'}]
arr.smartJoin('field','value') //=> {"age": 2, "city": "Berlin"}

Array.sort()#

Description: 对数组中的元素重新排序。对字符串按字母顺序排序时,无需参数。对数字或 Object 排序时,请参见示例。

Syntax: Array.sort(compareFunction(a, b)?)

Returns: Array

Source: JavaScript function

Parameters:

  • compareFunction (function) - 可选 - 用于比较两个数组元素并返回一个数字来指示排序顺序的函数: 返回 < 0a 排在 b 前面 返回 0ab 相等(保持原有顺序) 返回 > 0b 排在 a 前面

如果未指定函数,则将所有值转换为字符串并比较它们的字符编码。 * a (any) - 函数中要比较的第一个元素 * b (any) - 函数中要比较的第二个元素

Examples:

1
2
3
// No need for a param when sorting strings
// arr = ['d', 'a', 'c', 'b']
arr.sort() //=> ['a', 'b', 'c', 'd']
1
2
3
4
5
6
// To sort numbers, you must use a function
// arr = [4, 2, 1, 3]
arr.sort((a, b) => (a - b)) //=> [1, 2, 3, 4]

// Or using traditional function notation:
arr.sort(function(a, b){return a - b}) //=> [1, 2, 3, 4]
1
2
3
// Sort in reverse alphabetical order
// arr = ['d', 'a', 'c', 'b']
arr.sort((a, b) => b.localeCompare(a)) //=> ['d', 'c', 'b', 'a']
1
2
3
// Sort array of objects by a property
// arr = [{name:'Zak'}, {name:'Abe'}, {name:'Bob'}]
arr.sort((a, b) => a.name.localeCompare(b.name)) //=> [{name:'Abe'}, {name:'Bob'}, {name:'Zak'}]

Array.sum()#

Description: 返回数组中所有数字的总和。如果包含非数字元素则抛出错误。

Syntax: Array.sum()

Returns: Number

Source: Custom n8n functionality

Examples:

1
2
// arr = [12, 1, 5]
arr.sum() //=> 18

Array.toJsonString()#

Description: 将数组转换为 JSON 字符串。与 JavaScript 的 JSON.stringify() 相同。

Syntax: Array.toJsonString()

Returns: String

Source: Custom n8n functionality

Examples:

1
2
// obj = ['quick', 'brown', 'fox']
obj.toJsonString() //=> '["quick","brown","fox"]'

Array.toSpliced()#

Description: 在指定位置添加和/或删除数组元素。

另请参阅 slice()append()

Syntax: Array.toSpliced(start, deleteCount, elem1, ....., elemN)

Returns: Array

Source: JavaScript function

Parameters:

  • start (Number) - 添加或删除元素的索引(位置)。新元素将插入到该索引处的元素之前。负数表示从数组末尾倒数。
  • deleteCount (Number) - 可选 - 要删除的元素数量。省略时将删除从 start 索引开始的所有元素。
  • elem1 (any) - 可选 - 要添加的第一个新元素
  • elem2 (any) - 可选 - 要添加的第二个新元素
  • elemN (any) - 可选 - 要添加的第 N 个新元素

Examples:

1
2
3
// Insert element at index 1
// months = ['Jan', 'Mar']
months.toSpliced(1, 0, "Feb") // ['Jan', 'Feb', 'Mar']
1
2
3
// Delete 2 elements starting at index 1
// arr = ["don't", "make", "me", "do", "this"]
arr.toSpliced(1, 2) // ["don't", "do", "this"]
1
2
3
// Replace 2 elements starting at index 1
// arr = ["don't", "be", "evil"]
arr.toSpliced(1, 2, 'eat', 'slugs') // ["don't", "eat", "slugs"]

Array.toString()#

Description: 将数组转换为字符串,值之间用逗号分隔。如需使用其他分隔符,请使用 join()

Syntax: Array.toString()

Returns: String

Source: JavaScript function

Examples:

1
2
// words = ['make', 'my', 'day']
words.toString() //=> 'make,my,day'

Array.union()#

Description: 连接两个数组并去除重复元素

Syntax: Array.union(otherArray)

Returns: Array

Source: Custom n8n functionality

Parameters:

  • otherArray (Array) - 要与基础数组合并的数组

Examples:

1
2
// arr = [1, 2]
arr.union([2, 3]) //=> [1, 2, 3]

Array.unique()#

Description: 移除数组中的所有重复元素

Syntax: Array.unique()

Returns: Array

Source: Custom n8n functionality

Examples:

1
2
// arr = ['quick', 'brown', 'quick']
arr.unique() //=> ['quick', 'brown']