range, first, last, take e skip
Funções para criar e fatiar listas. range é a chave dos loops de repetição "N vezes" (como o de parcelas), e first, last, take e skip pegam partes de listas e também de textos.
Sintaxe
range(início, quantidade) first(lista) last(lista) take(lista, n) skip(lista, n)
Exemplos testados
| Expressão | Resultado |
|---|---|
range(1, 3)a partir do 1, 3 números | [1,2,3] |
range(0, 3) | [0,1,2] |
first(createArray(1,2,3)) | 1 |
last(createArray(1,2,3)) | 3 |
first('abc')em texto, o primeiro caractere | a |
last('abc') | c |
take(createArray(1,2,3), 2) | [1,2] |
skip(createArray(1,2,3), 1) | [2,3] |
union(createArray(1,2), createArray(2,3))sem repetir | [1,2,3] |
intersection(createArray(1,2), createArray(2,3)) | [2] |
length(createArray(1,2,3)) | 3 |
min(createArray(3,1,2)) | 1 |
first(outputs('Dados')?['pedido']?['itens'])?['sku']primeiro item de uma lista de objetos | A1 |
Quando usar
Use range para repetir algo um número fixo de vezes (parcelas, tentativas, páginas), alimentando um Aplicar a cada. Use first e last para pegar o primeiro ou o último item de uma lista, por exemplo o anexo certo de um e-mail depois de filtrar, e take e skip para paginar ou limitar listas grandes antes de processá-las, o que também reduz o número de ações do fluxo. union e intersection resolvem junções e conferências de duas listas sem loop. Sempre que possível, prefira essas funções e as ações Filtrar matriz e Selecionar a um loop, porque cada iteração de um loop conta como ações adicionais.
Armadilhas
range(início, quantidade): o segundo número é a quantidade, e não o último valor.range(1, 3)vai de 1 a 3;range(0, 3)vai de 0 a 2.firstde lista vazia devolve nulo (não derruba o fluxo): confira antes de usar o resultado.- Listas vazias não se criam com
createArray(), que é inválido sem itens. Usejson('[]'). - O loop Aplicar a cada roda um item por vez por padrão; mexer na concorrência pode causar o erro 429.
Perguntas frequentes
Como repetir uma ação N vezes?
Um Aplicar a cada sobre range(1, N), com items('Nome_do_loop') como contador. Foi o que o guia de parcelas fez.
Como filtrar uma lista?
Com a ação Filtrar matriz (como no guia de CSV por e-mail), e não com um loop.