Merge pull request #296 from slapresta/all-any

Added `all` and `any` builtins
This commit is contained in:
Nico Williams committed 2014-02-16 22:45:49 -06:00
commit b23fae9ee3
2 files changed
+42

No files matched your search

+2
View File
@@ -680,6 +680,8 @@ static const char* const jq_builtins[] = {
"def rindex(i): .[i][-1:][0];",
"def paths: path(recurse(if (type|. == \"array\" or . == \"object\") then .[] else empty end))|select(length > 0);",
"def leaf_paths: . as $dot|paths|select(. as $p|$dot|getpath($p)|type|. != \"array\" and . != \"object\");",
"def any: reduce .[] as $i (false; . or $i);",
"def all: reduce .[] as $i (true; . and $i);",
};
+40
View File
@@ -690,6 +690,46 @@ sections:
input: '[]'
output: ["null"]
- title: `any`
body: |
The filter `any` takes as input an array of boolean values,
and produces `true` as output if any of the the elements of
the array is `true`.
If the input is an empty array, `any` returns `false`.
examples:
- program: any
input: '[true, false]'
output: ["true"]
- program: any
input: '[false, false]'
output: ["false"]
- program: any
input: '[]'
output: ["false"]
- title: `all`
body: |
The filter `all` takes as input an array of boolean values,
and produces `true` as output if all of the the elements of
the array are `true`.
If the input is an empty array, `all` returns `true`.
examples:
- program: all
input: '[true, false]'
output: ["false"]
- program: all
input: '[true, true]'
output: ["true"]
- program: all
input: '[]'
output: ["true"]
- title: `range`
body: |