Script retornando [object Undefined]

Olá!

Estou realizando uma requisição HTTP que retorna basicamente esse resultado (ocultei algumas variáveis para facilitar a compreensão):
{"data":[{"id":"20233","type":"projects"},{"id":"24504","type":"projects"},{"id":"24505","type":"projects"}]}

O builder consegue realizar o request perfeitamente e salva o resultado na variável “dados”, conforme pude confirmar no debug. Como eu desejo que ele retorne cada uma das três IDs, fiz o seguinte script:

function run(entrada) {

    var entrada_parsed = JSON.parse(entrada)

    let resultado = []

    var dados = entrada_parsed.data

    dados.forEach((item, index, array) => {
        resultado.push(item.id)
    })

    var string_final = resultado.join(' ');
    return toString(string_final);
}

como variável de entrada coloquei “dados”, para obter o resultado do request citado anteriormente e salvei a saída na variável “listaids”.
O problema é que “listaids” só retorna “[object Undefined]”. Tudo está rodando perfeitamente no console de debug, só esse resultado que não bate com o que deveria ser. Rodei o script localmente no meu computador copiando e colando o que o console indicava ser a variável “dados” e ele retornou o valor correto: “20233 24504 24505”. Ou seja, me parece que o problema está na forma como o builder está passando a variável dados para o script.
Deixei passar algo? Tentei também passar como {{dados}} mas ficou vermelhinho e percebi que não era assim.

Obrigado e abraços,

1 Curtida

Oi @Jonas_C,
Remova o método toString() e vai funcionar, o join já realiza o trabalho de conversão.

function run(entrada) {

var entrada_parsed = JSON.parse(entrada);

let resultado = [];

var dados = entrada_parsed.data;

dados.forEach((item, index, array) => {
    resultado.push(item.id);
})

var string_final = resultado.join(' ');
return string_final;

}

1 Curtida

Perfeito, funcionou!
Obrigado

1 Curtida

Este tópico foi fechado automaticamente 7 dias depois da úlima resposta. Novas respostas não são mais permitidas.