# `REDUCE`

Iterates over elements in an array, applying a specified lambda function to accumulate a result. This function takes 3 arguments

`array`: The iterable to be reduced.

`LAMBDA`: A lambda function with two arguments (`previous` and `current`) that defines the reduction operation. Optionally, an expression `[expr]` can be included for additional computation.

`initial_value`: an initial value for the accumulator. The reduction starts with this value.

## Syntax

`REDUCE(array, LAMBDA(previous_value, current_value, [expr]), initial_value)`

## Usage examples

### Example 1

 Input 1{2 "my_array": [3 1,4 2,5 3,6 4,7 5,8 6,9 7,10 8,11 9,12 1013 ]14} Formula `REDUCE(my_array, LAMBDA(previous_value, current_value, PLUS(previous_value, current_value)), 0)` Output 55

### Example 2

 Input 1{2 "array_of_objects": [3 {4 "timestamp": "2022-02-15 12:30:00+0000"5 },6 {7 "user": "bob.smith"8 },9 {10 "src_ip": "192.168.1.100"11 },12 {13 "dest_ip": "172.16.1.23"14 },15 {16 "file_hash": "2968896cb4639d4c839ab802720266d35bb15be93e3a4055109aa3bf1779f591"17 },18 {19 "file_name": "executable.exe"20 }21 ]22} Formula `REDUCE(array_of_objects, LAMBDA(previous_value, current_value, MERGE(previous_value, current_value)), OBJECT())` Output 1{2 "dest_ip": "172.16.1.23",3 "file_hash": "2968896cb4639d4c839ab802720266d35bb15be93e3a4055109aa3bf1779f591",4 "file_name": "executable.exe",5 "src_ip": "192.168.1.100",6 "timestamp": "2022-02-15 12:30:00+0000",7 "user": "bob.smith"8}

## Sample Actions

Transform
REDUCE
Transform
My Action

### Select an action to inspect.

You can also click "Copy actions" and paste them in your Tines story to see how they work.