forked from urfu-2015/javascript-tasks-3
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
49 lines (37 loc) · 1.92 KB
/
index.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
'use strict';
// Подключаем нашу телефоную книгу друзей
var phoneBook = require('./phoneBook');
// Подключаем волшебный конструктор запросов
var lego = require('./lego');
// Мы хотим найти подходящих друзей для вечеринки
var result = lego.query(
// Для этого передаём нашу книгу
phoneBook,
// И выбираем только нужные поля
lego.select('name', 'gender', 'age', 'phone', 'favoriteFruit'),
// Обязательно выбираем тех, кто любит Яблоки и Картофель (самое важное !!!)
lego.filterIn('favoriteFruit', ['Яблоко', 'Картофель']),
// Отсортируем их по возрасту (но зачем?)
lego.sortBy('age', 'asc'), // Бывает только asc (от меньшего к большему) или desc (наоборот)
// А пол выведем только первой буквой для удобства
lego.format('gender', function (value) {
return value[0];
}),
// На дачу влезет примерно 10 человек
lego.limit(10)
);
// Будет круто организовать две вечеринки сразу: яблочную для девушек и картофельную для парней.
var result = lego.query(
phoneBook,
// Выбираем всех парней, которые любят картофель, и всех девушек, которые любят яблоки
lego.or(
lego.and(
lego.filterEqual('gender', 'Мужской'),
lego.filterIn('favoriteFruit', ['Картофель'])
),
lego.and(
lego.filterEqual('gender', 'Женский'),
lego.filterIn('favoriteFruit', ['Яблоко'])
)
)
);