@@ -220,19 +220,85 @@ If the array is empty, returns **true**.
220
220
Returns new array by applying the [ predicate] ( #predicate ) to each element of
221
221
the array.
222
222
223
+ ```
224
+ map(Tweets, {.Size})
225
+ ```
226
+
223
227
### filter(array, predicate)
224
228
225
229
Returns new array by filtering elements of the array by [ predicate] ( #predicate ) .
226
230
231
+ ```
232
+ filter(users, .Name startsWith "J")
233
+ ```
234
+
235
+ ### find(array, predicate)
236
+
237
+ Finds the first element in an array that satisfies the [ predicate] ( #predicate ) .
238
+
239
+ ``` expr
240
+ find([1, 2, 3, 4], # > 2) == 3
241
+ ```
242
+
243
+ ### findIndex(array, predicate)
244
+
245
+ Finds the index of the first element in an array that satisfies the [ predicate] ( #predicate ) .
246
+
247
+ ``` expr
248
+ findIndex([1, 2, 3, 4], # > 2) == 2
249
+ ```
250
+
251
+ ### findLast(array, predicate)
252
+
253
+ Finds the last element in an array that satisfies the [ predicate] ( #predicate ) .
254
+
255
+ ``` expr
256
+ findLast([1, 2, 3, 4], # > 2) == 4
257
+ ```
258
+
259
+ ### findLastIndex(array, predicate)
260
+
261
+ Finds the index of the last element in an array that satisfies the [ predicate] ( #predicate ) .
262
+
263
+ ``` expr
264
+ findLastIndex([1, 2, 3, 4], # > 2) == 3
265
+ ```
266
+
267
+ ### groupBy(array, predicate)
268
+
269
+ Groups the elements of an array by the result of the [ predicate] ( #predicate ) .
270
+
271
+ ``` expr
272
+ groupBy(users, .Age)
273
+ ```
274
+
227
275
### count(array, predicate)
228
276
229
277
Returns the number of elements what satisfies the [ predicate] ( #predicate ) .
278
+
230
279
Equivalent to:
231
280
232
281
``` expr
233
282
len(filter(array, predicate))
234
283
```
235
284
285
+ ### reduce(array, predicate[ , initialValue] )
286
+
287
+ Applies a predicate to each element in the array, reducing the array to a single value.
288
+ Optional ` initialValue ` argument can be used to specify the initial value of the accumulator.
289
+ If ` initialValue ` is not given, the first element of the array is used as the initial value.
290
+
291
+ Following variables are available in the predicate:
292
+
293
+ - ` # ` - the current element
294
+ - ` #acc ` - the accumulator
295
+ - ` #index ` - the index of the current element
296
+
297
+ ``` expr
298
+ reduce(1..9, #acc + #)
299
+ reduce(1..9, #acc + #, 0)
300
+ ```
301
+
236
302
### len(v)
237
303
238
304
Returns the length of an array, a map or a string.
@@ -243,7 +309,6 @@ Returns the type of the given value `v`.
243
309
Returns on of the following types: ` nil ` , ` bool ` , ` int ` , ` uint ` , ` float ` , ` string ` , ` array ` , ` map ` .
244
310
For named types and structs, the type name is returned.
245
311
246
-
247
312
``` expr
248
313
type(42) == "int"
249
314
type("hello") == "string"
@@ -408,6 +473,30 @@ Returns the minimum of the two values `v1` and `v2`.
408
473
min(5, 7) == 5
409
474
```
410
475
476
+ ### sum(array)
477
+
478
+ Returns the sum of all numbers in the array.
479
+
480
+ ``` expr
481
+ sum([1, 2, 3]) == 6
482
+ ```
483
+
484
+ ### mean(array)
485
+
486
+ Returns the average of all numbers in the array.
487
+
488
+ ``` expr
489
+ mean([1, 2, 3]) == 2.0
490
+ ```
491
+
492
+ ### median(array)
493
+
494
+ Returns the median of all numbers in the array.
495
+
496
+ ``` expr
497
+ median([1, 2, 3]) == 2.0
498
+ ```
499
+
411
500
### toJSON(v)
412
501
413
502
Converts the given value ` v ` to its JSON string representation.
@@ -511,10 +600,70 @@ get([1, 2, 3], 1) == 2
511
600
get({"name": "John", "age": 30}, "name") == "John"
512
601
```
513
602
603
+ ### take(array, n)
604
+
605
+ Returns the first ` n ` elements from an array. If the array has fewer than ` n ` elements, returns the whole array.
606
+
607
+ ``` expr
608
+ take([1, 2, 3, 4], 2) == [1, 2]
609
+ ```
610
+
611
+ ### keys(map)
612
+
613
+ Returns an array containing the keys of the map.
614
+
615
+ ``` expr
616
+ keys({"name": "John", "age": 30}) == ["name", "age"]
617
+ ```
618
+
619
+ ### values(map)
620
+
621
+ Returns an array containing the values of the map.
622
+
623
+ ``` expr
624
+ values({"name": "John", "age": 30}) == ["John", 30]
625
+ ```
626
+
627
+ ### toPairs(map)
628
+
629
+ Converts a map to an array of key-value pairs.
630
+
631
+ ``` expr
632
+ toPairs({"name": "John", "age": 30}) == [["name", "John"], ["age", 30]]
633
+ ```
634
+
635
+ ### fromPairs(array)
636
+
637
+ Converts an array of key-value pairs to a map.
638
+
639
+ ``` expr
640
+ fromPairs([["name", "John"], ["age", 30]]) == {"name": "John", "age": 30}
641
+ ```
642
+
643
+ ### sort(array[ , order] )
644
+
645
+ Sorts an array in ascending order. Optional ` order ` argument can be used to specify the order of sorting: ` asc `
646
+ or ` desc ` .
647
+
648
+ ``` expr
649
+ sort([3, 1, 4]) == [1, 3, 4]
650
+ sort([3, 1, 4], "desc") == [4, 3, 1]
651
+ ```
652
+
653
+ ### sortBy(array, key[ , order] )
654
+
655
+ Sorts an array of maps by a specific key in ascending order. Optional ` order ` argument can be used to specify the order
656
+ of sorting: ` asc ` or ` desc ` .
657
+
658
+ ``` expr
659
+ sortBy(users, "Age")
660
+ sortBy(users, "Age", "desc")
661
+ ```
662
+
514
663
## Predicate
515
664
516
- The predicate is an expression that accepts a single argument. To access
517
- the argument use the ` # ` symbol.
665
+ The predicate is an expression. It takes one or more arguments and returns a boolean value.
666
+ To access the arguments, the ` # ` symbol is used.
518
667
519
668
``` expr
520
669
map(0..9, {# / 2})
0 commit comments