1 | var traverse = require('../');
|
2 | var test = require('tap').test;
|
3 |
|
4 | test('subexpr', function (t) {
|
5 | var obj = [ 'a', 4, 'b', 5, 'c', 6 ];
|
6 | var r = traverse(obj).map(function (x) {
|
7 | if (typeof x === 'number') {
|
8 | this.update([ x - 0.1, x, x + 0.1 ], true);
|
9 | }
|
10 | });
|
11 |
|
12 | t.same(obj, [ 'a', 4, 'b', 5, 'c', 6 ]);
|
13 | t.same(r, [
|
14 | 'a', [ 3.9, 4, 4.1 ],
|
15 | 'b', [ 4.9, 5, 5.1 ],
|
16 | 'c', [ 5.9, 6, 6.1 ],
|
17 | ]);
|
18 | t.end();
|
19 | });
|
20 |
|
21 | test('block', function (t) {
|
22 | var obj = [ [ 1 ], [ 2 ], [ 3 ] ];
|
23 | var r = traverse(obj).map(function (x) {
|
24 | if (Array.isArray(x) && !this.isRoot) {
|
25 | if (x[0] === 5) this.block()
|
26 | else this.update([ [ x[0] + 1 ] ])
|
27 | }
|
28 | });
|
29 |
|
30 | t.same(r, [
|
31 | [ [ [ [ [ 5 ] ] ] ] ],
|
32 | [ [ [ [ 5 ] ] ] ],
|
33 | [ [ [ 5 ] ] ],
|
34 | ]);
|
35 | t.end();
|
36 | });
|