Merge pull request #366 from slapresta/inversed-contains
Added `in` command
This commit is contained in:
commit
3234a7681e
2 files changed
+42
No files matched your search
@@ -1121,6 +1121,8 @@ static const char* const jq_builtins[] = {
|
|||||||
" | reduce range(0; $max) as $j"
|
" | reduce range(0; $max) as $j"
|
||||||
" ([]; . + [reduce range(0;$length) as $i ([]; . + [ $in[$i][$j] ] )] )"
|
" ([]; . + [reduce range(0;$length) as $i ([]; . + [ $in[$i][$j] ] )] )"
|
||||||
" end;",
|
" end;",
|
||||||
|
"def in(xs): . as $x | xs | has($x)",
|
||||||
|
"def inside(xs): . as $x | xs | contains($x)",
|
||||||
};
|
};
|
||||||
#undef LIBM_DD
|
#undef LIBM_DD
|
||||||
|
|
||||||
|
|||||||
@@ -653,6 +653,22 @@ sections:
|
|||||||
input: '[[0,1], ["a","b","c"]]'
|
input: '[[0,1], ["a","b","c"]]'
|
||||||
output: ['[false, true]']
|
output: ['[false, true]']
|
||||||
|
|
||||||
|
- title: `in`
|
||||||
|
body: |
|
||||||
|
|
||||||
|
The builtin function `in` returns the input key is in the
|
||||||
|
given object, or the input index corresponds to an element
|
||||||
|
in the given array. It is, essentially, an inversed version
|
||||||
|
of `has`.
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- program: 'in({"foo": 42})'
|
||||||
|
input: '"foo", "bar"'
|
||||||
|
output: ['true', 'false']
|
||||||
|
- program: 'map(in([0,1]))'
|
||||||
|
input: '[2, 0]'
|
||||||
|
output: ['false', 'true']
|
||||||
|
|
||||||
- title: "`path(path_expression)`"
|
- title: "`path(path_expression)`"
|
||||||
body: |
|
body: |
|
||||||
|
|
||||||
@@ -1175,6 +1191,30 @@ sections:
|
|||||||
input: '"a,b, cd, efg, hijk"'
|
input: '"a,b, cd, efg, hijk"'
|
||||||
output: ['12']
|
output: ['12']
|
||||||
|
|
||||||
|
- title: `inside`
|
||||||
|
body: |
|
||||||
|
|
||||||
|
The filter `inside(b)` will produce true if the input is
|
||||||
|
completely contained within b. It is, essentially, an
|
||||||
|
inversed version of `contains`.
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- program: 'inside("foobar")'
|
||||||
|
input: '"bar"'
|
||||||
|
output: ['true']
|
||||||
|
- program: 'inside(["foobar", "foobaz", "blarp"])'
|
||||||
|
input: '["baz", "bar"]'
|
||||||
|
output: ['true']
|
||||||
|
- program: 'inside(["foobar", "foobaz", "blarp"])'
|
||||||
|
input: '["bazzzzz", "bar"]'
|
||||||
|
output: ['false']
|
||||||
|
- program: 'inside({"foo": 12, "bar":[1,2,{"barp":12, "blip":13}]})'
|
||||||
|
input: '{foo: 12, bar: [{barp: 12}]}'
|
||||||
|
output: ['true']
|
||||||
|
- program: 'inside({"foo": 12, "bar":[1,2,{"barp":12, "blip":13}]})'
|
||||||
|
input: '{foo: 12, bar: [{barp: 15}]}'
|
||||||
|
output: ['false']
|
||||||
|
|
||||||
- title: "`startswith(str)`"
|
- title: "`startswith(str)`"
|
||||||
body: |
|
body: |
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user