-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexamples.js
129 lines (110 loc) · 3.17 KB
/
examples.js
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// 1. Getting Extractor instance
const Extractor = require('./extractor');
let extractor = new Extractor();
let data = {
countries: [
{
name: 'Australia',
population: 24641662,
cities: [
{name: 'Sydney', population: 5029768},
{name: 'Melbourne', population: 4725316},
{name: 'Canberra', population: 435019}
]
},
{
name: 'Brazil',
population: 211243220,
cities: [
{name: 'São Paulo', population: 12038175},
{name: 'Rio de Janeiro', population: 6498837},
{name: 'Salvador', population: 2938092}
]
},
{
name: 'China',
population: 1388232693,
cities: [
{name: 'Shanghai', population: 24152700},
{name: 'Beijing', population: 21700000},
{name: 'Guangzhou', population: 14043500}
]
},
{
name: 'United States',
population: 326474013,
cities: [
{name: 'New York', population: 8537673},
{name: 'Los Angeles', population: 3976322},
{name: 'Chicago', population: 2704958}
]
}
],
country_codes: ['AU', 'BR', 'CN', 'US'],
count: 4
};
// 2. Getting single values
console.log('*** Getting single values ***');
// 2.1.
extractor.setPath('data.count');
console.log(extractor.extractFrom(data).get());
// 2.2.
extractor.setPath('data.foo.bar.baz');
console.log(extractor.extractFrom(data).get());
// 2.3.
extractor.setPath('data.count');
let response = extractor.extractFrom(data);
if (response.has()) {
console.log(response.get());
}
// 3. Getting arrays of values
console.log('\n*** Getting arrays of values ***');
// 3.1.
extractor.setPath('data.country_codes.[]');
console.log(extractor.extractFrom(data).get());
// 3.2.
extractor.setPath('data.foo.[].bar');
console.log(extractor.extractFrom(data).get());
// 3.3.
extractor.setPath('data.country_codes.[]');
response = extractor.extractFrom(data);
if (response.has()) {
console.log(response.get());
}
// 4. More examples
console.log('\n*** More examples ***');
// 4.1.
extractor.setPath('data.countries.[]');
console.log(extractor.extractFrom(data).get());
// 4.2.
extractor.setPath('data.countries.[].name');
console.log(extractor.extractFrom(data).get());
// 4.3.
extractor.setPath('data.countries.[].cities.[].name');
console.log(extractor.extractFrom(data).get());
// 5. Using filters
console.log('\n*** Using filters ***');
// 5.1.
extractor.setPath('data.countries.[population].name');
extractor.removeAllFilters();
extractor.setFilter('population', (item) => {
return (item.population > 300000000);
});
console.log(extractor.extractFrom(data).get());
// 5.2.
extractor.setPath('data.countries.[].cities.[city_name].name');
extractor.removeAllFilters();
extractor.setFilter('city_name', (item) => {
return (item.name[0] === 'S');
});
console.log(extractor.extractFrom(data).get());
// 5.3.
extractor.setPath('data.countries.[country_population].cities.[city_population]');
extractor.removeAllFilters();
extractor.setFilter('country_population', (item) => {
return (item.population > 1000000000);
});
extractor.setFilter('city_population', (item) => {
return (item.population > 20000000);
});
console.log(extractor.extractFrom(data).get());