zhangnaisong
2023-08-05 24d66c8d82b628a06e93dbb1abfea2049b3d45ab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
'use strict';
 
var test = require('tape');
var traverse = require('../');
 
test('interface map', function (t) {
    var obj = { a: [5, 6, 7], b: { c: [8] } };
 
    t.same(
        traverse.paths(obj)
            .sort()
            .map(function (path) { return path.join('/'); })
            .slice(1)
            .join(' ')
        ,
        'a a/0 a/1 a/2 b b/c b/c/0'
    );
 
    t.same(
        traverse.nodes(obj),
        [
            { a: [5, 6, 7], b: { c: [8] } },
            [5, 6, 7], 5, 6, 7,
            { c: [8] }, [8], 8,
        ]
    );
 
    t.same(
        traverse.map(obj, function (node) {
            if (typeof node === 'number') {
                return node + 1000;
            }
            if (Array.isArray(node)) {
                return node.join(' ');
            }
            return void undefined;
        }),
        { a: '5 6 7', b: { c: '8' } }
    );
 
    var nodes = 0;
    traverse.forEach(obj, function () { nodes += 1; });
    t.equal(nodes, 8);
 
    t.end();
});