Tengo un Zap que se activa cada vez que se genera un nuevo LeadAd de Facebook. En el segundo paso, creé un código JS para hacer coincidir algunos campos del leadad (Nombre del anuncio + Término) con una propiedad de un objeto dentro de una matriz de objetos con función de filtro.
Ejemplo:
let campaign = inputData.adset_name + inputData.term; let logic = [ { Campaign: "Adsetname+term", Doctors: "Name 1 - Name 2", ID: "xxxxxxxx - yyyyyyyy", Count: "2", Zone: "Neighborhood", UF: "City" } //There's a lot of these objects inside the array with other data. ] let filtro = logic.filter(x => { return x.Campaign === campaign; }); output = [ { ID: filtro.ID, UF: filtro.UF, Count: filtro.Count } ];El objetivo principal aquí es hacer coincidir el término + nombre del conjunto de anuncios entrante con el término + nombre del conjunto de anuncios de un objeto determinado dentro de la matriz, por lo que devolverá la otra información vinculada a este objeto específico.
Pero el código no genera ninguna información en este objeto creado. Se ejecuta sin errores, pero no devuelve datos del objeto.
Resultado de la prueba de paso
¿Sabes lo que estoy haciendo mal?
En su código, filtro se establece en una matriz filtrada de objetos:
filtro = [ {ID: 'asdf', UF: 'qwer'} ] En su salida, está accediendo a filtro.ID , que no está undefined . Una Array no tiene una propiedad de ID .
En su lugar, probablemente desee ID , UF y Count para cada elemento en filtro . En ese caso, puede usar la función Array.map :
output = filtro.map(item => { return { ID: item.ID, UF: item.UF, Count: item.Count } })Esto devolverá una matriz de objetos. Si este código es una acción (en lugar de un activador), se ejecutarán pasos de zap posteriores para cada artículo que devuelva. Consulte estos documentos para obtener más información.