Код Zapier для l oop через массив объектов, вытягивая одно значение на объект, а затем усреднять эти значения - PullRequest
0 голосов
/ 26 февраля 2020

Используя JavaScript для Zapier, я пытаюсь вычислить среднее значение свойства из массива объектов.

Вот один из объектов ...

{
    "code": 0,
    "data": [
        {
            "id": "28737",
            "owner": "1",
            "date": "1581945706",
            "dla": "0",
            "dlm": "1582551517",
            "system_source": "3",
            "source_location": null,
            "ip_addy": null,
            "ip_addy_display": null,
            "import_id": "0",
            "contact_cat": "*/*",
            "bulk_mail": "1",
            "bulk_sms": "0",
            "bindex": "76",
            "f1849": "9898983",
            "f1850": "Foundation Course 2: Lecture 1 QUIZ",
            "f1851": "0",
            "f1853": "John Doe",
            "f1854": "TRUE",
            "f1855": "93",    // <= calculate average for this property
            "f1859": "292",
            "f1862": "0",
            "f1867": "Kajabi",
            "f1868": "0",
            "unique_id": "7WB77PT"
        },
        ...
    ]
}

Мне нужно извлечь значение для свойства с именем f1855 для каждого объекта, затем вычислить среднее значение и вернуть это значение через POST.

Я не думаю, что это трудно сделать с JavaScript но я не привык к правилам и ограничениям Zapier.

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 26 февраля 2020

** Увидев отредактированную версию вашего поста, я теперь не уверен, является ли ваши входные данные массивом data внутри примера или массивом этих объектов. Если второе, то я не знаю, хотите ли вы среднее для каждого объекта data проп. или что-то другое. Но приведенный ниже код может быть частью решения в любом случае.


Я ничего не знаю о Zapier, но часть JavaScript может выглядеть примерно так:

const inputData = //your array of objects
const reducer = (sum, theObject) => sum + parseFloat(theObject.f1855)
const sumF1855 = inputData.reduce(reducer, 0)
const avgF1855 = sumF1855 / inputData.length

Этот код не обрабатывает условия ошибки (например, если в одном из объектов отсутствует свойство f1855 или делится на ноль, если inputData были пустыми). Надеюсь, это даст вам идею начать.

...