Skip to main content

Como tratar strings no execute script do builder?


Não estou conseguindo utilizar métodos com string no bot builder.
Veja o código:

function run(response) {
    response = JSON.parse(response)

    let personagens = response.results.filter(function(x) {
        let name = x.name.toLowerCase()
        let person = '{{person}}'.toLowerCase()
        return name.includes(person) //Linha do erro
    })

    if (personagens.length == 0) return 'notfound'
    
    return personagens
}

A variavel name é do tipo string, mas quando dou um typeof(name) ele diz que é um Object. Assim ocasionando um erro ao tentar utilizar o includes() em um Object.

Testando no babel ou no interpretador do navegador Chrome ele funciona normalmente.

2 comentários

@Gabriel_Santos, a action de script do Builder suporta Ecmascript 5.1 (se não me engano).
Tente reescrever seu código usando apenas os recursos desta versão que acredito que deverá funcionar.


rafaelpa
Blipper
  • Blipper
  • April 2, 2018

Perfeito @andreminelli!

@Gabriel_Santos, todo o seu código precisa seguir a especificação Ecmascript 5.1 (conforme link abaixo)

http://www.ecma-international.org/ecma-262/5.1/

Lembre-se que algumas funções funcionam apenas em browsers e portanto não serão suportadas na ação de script.