summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNico Williams <nico@cryptonector.com>2014-12-26 21:50:11 -0600
committerNico Williams <nico@cryptonector.com>2014-12-26 21:50:11 -0600
commit36077da66ac06b4fdb325ac97a385ff2f0e9e8a6 (patch)
treeab2e1c05283c9ab806464ab09f23d135250ea4d3
parent9e1fd8cf4da04faf1170739923a099e74da61231 (diff)
parent84d3203dd1fe741a76c4ecdd1ca3d8fe7c1a0268 (diff)
Merge pull request #628 from slapresta/map-on-objects
Modify map\1 so that it works on objects
-rw-r--r--builtin.c1
-rw-r--r--docs/content/3.manual/manual.yml13
2 files changed, 11 insertions, 3 deletions
diff --git a/builtin.c b/builtin.c
index 1fef9a17..dbf6608c 100644
--- a/builtin.c
+++ b/builtin.c
@@ -961,6 +961,7 @@ static block bind_bytecoded_builtins(block b) {
static const char* const jq_builtins[] = {
"def break: error(\"break\");",
"def map(f): [.[] | f];",
+ "def map_values(f): .[] |= f;",
"def select(f): if f then . else empty end;",
"def sort_by(f): _sort_by_impl(map([f]));",
"def group_by(f): _group_by_impl(map([f]));",
diff --git a/docs/content/3.manual/manual.yml b/docs/content/3.manual/manual.yml
index 73015c05..cd2b34e5 100644
--- a/docs/content/3.manual/manual.yml
+++ b/docs/content/3.manual/manual.yml
@@ -777,20 +777,27 @@ sections:
null and objects would, but with the given message as the
error's value.
- - title: "`map(x)`"
+ - title: "`map(x)`, `map_values(x)`"
body: |
For any filter `x`, `map(x)` will run that filter for each
element of the input array, and produce the outputs a new
array. `map(.+1)` will increment each element of an array of numbers.
-
+
+ Similarly, `map_values(x)` will run that filter for each element,
+ but it will return an object when an object is passed.
+
`map(x)` is equivalent to `[.[] | x]`. In fact, this is how
- it's defined.
+ it's defined. Similarly, `map_values(x)` is defined as `.[] |= x`.
examples:
- program: 'map(.+1)'
input: '[1,2,3]'
output: ['[2,3,4]']
+
+ - program: 'map_values(.+1)'
+ input: '{"a": 1, "b": 2, "c": 3}'
+ output: ['{"a": 2, "b": 3, "c": 4}']
- title: "`paths`, `paths(node_filter)`, `leaf_paths`"
body: |