Skip to content

Commit ed7d8fb

Browse files
committed
Change jshint to eslint, update examples
1 parent 88b853c commit ed7d8fb

4 files changed

Lines changed: 224 additions & 0 deletions

File tree

.eslintrc.yml

Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
env:
2+
es6: true
3+
node: true
4+
extends: 'eslint:recommended'
5+
globals:
6+
api: false
7+
rules:
8+
indent:
9+
- error
10+
- 2
11+
- SwitchCase: 1
12+
VariableDeclarator:
13+
var: 2
14+
let: 2
15+
const: 3
16+
MemberExpression: 1
17+
linebreak-style:
18+
- error
19+
- unix
20+
quotes:
21+
- error
22+
- single
23+
semi:
24+
- error
25+
- always
26+
eqeqeq:
27+
- error
28+
- always
29+
no-loop-func:
30+
- error
31+
strict:
32+
- error
33+
- global
34+
block-spacing:
35+
- error
36+
- always
37+
brace-style:
38+
- error
39+
- 1tbs
40+
- allowSingleLine: true
41+
camelcase:
42+
- error
43+
comma-style:
44+
- error
45+
- last
46+
comma-spacing:
47+
- error
48+
- before: false
49+
after: true
50+
eol-last:
51+
- error
52+
func-call-spacing:
53+
- error
54+
- never
55+
key-spacing:
56+
- error
57+
- beforeColon: false
58+
afterColon: true
59+
mode: minimum
60+
keyword-spacing:
61+
- error
62+
- before: true
63+
after: true
64+
overrides:
65+
function:
66+
after: false
67+
max-len:
68+
- error
69+
- code: 80
70+
ignoreUrls: true
71+
max-nested-callbacks:
72+
- error
73+
- max: 7
74+
new-cap:
75+
- error
76+
- newIsCap: true
77+
capIsNew: true
78+
properties: true
79+
new-parens:
80+
- error
81+
no-lonely-if:
82+
- error
83+
no-trailing-spaces:
84+
- error
85+
no-unneeded-ternary:
86+
- error
87+
no-whitespace-before-property:
88+
- error
89+
object-curly-spacing:
90+
- error
91+
- always
92+
operator-assignment:
93+
- error
94+
- always
95+
operator-linebreak:
96+
- error
97+
- after
98+
semi-spacing:
99+
- error
100+
- before: false
101+
after: true
102+
space-before-blocks:
103+
- error
104+
- always
105+
space-before-function-paren:
106+
- error
107+
- never
108+
space-in-parens:
109+
- error
110+
- never
111+
space-infix-ops:
112+
- error
113+
space-unary-ops:
114+
- error
115+
- words: true
116+
nonwords: false
117+
overrides:
118+
typeof: false
119+
no-unreachable:
120+
- error
121+
no-global-assign:
122+
- error
123+
no-self-compare:
124+
- error
125+
no-unmodified-loop-condition:
126+
- error
127+
no-constant-condition:
128+
- error
129+
- checkLoops: false
130+
no-console:
131+
- off
132+
no-useless-concat:
133+
- error
134+
no-useless-escape:
135+
- error
136+
no-shadow-restricted-names:
137+
- error
138+
no-use-before-define:
139+
- error
140+
- functions: false
141+
arrow-body-style:
142+
- error
143+
- as-needed
144+
arrow-spacing:
145+
- error
146+
no-confusing-arrow:
147+
- error
148+
- allowParens: true
149+
no-useless-computed-key:
150+
- error
151+
no-useless-rename:
152+
- error
153+
no-var:
154+
- error
155+
object-shorthand:
156+
- error
157+
- always
158+
prefer-arrow-callback:
159+
- error
160+
prefer-const:
161+
- error
162+
prefer-numeric-literals:
163+
- error
164+
prefer-rest-params:
165+
- error
166+
prefer-spread:
167+
- error
168+
rest-spread-spacing:
169+
- error
170+
- never
171+
template-curly-spacing:
172+
- error
173+
- never

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
node_modules
2+
*.log
3+
.DS_Store

JavaScript/1-simple.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
'use strict';
2+
3+
const cities = new Set();
4+
5+
cities.add('Beijing');
6+
7+
['Kiev', 'London', 'Baghdad'].forEach(city => cities.add(city));
8+
9+
cities.delete('Baghdad');
10+
11+
console.dir({ cities });
12+
13+
if (cities.has('Kiev')) {
14+
console.log('cities contains Kiev');
15+
}
16+
17+
console.dir({ keys: cities.keys() });
18+
console.dir({ values: cities.values() });
19+
console.dir({ entries: cities.entries() });
20+
21+
cities.clear();

JavaScript/2-distinct.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
'use strict';
2+
3+
function distinct(dataset) {
4+
const keys = new Set();
5+
return dataset.filter(record => {
6+
const cols = Object.keys(record).sort();
7+
const key = cols.map(field => record[field]).join('\x00');
8+
const has = keys.has(key);
9+
keys.add(key);
10+
return !has;
11+
});
12+
}
13+
14+
let flights = [
15+
{ from: 'Kiev', to: 'Rome' },
16+
{ from: 'Kiev', to: 'Warsaw' },
17+
{ from: 'Dublin', to: 'Riga' },
18+
{ from: 'Riga', to: 'Dublin' },
19+
{ from: 'Kiev', to: 'Rome' },
20+
{ from: 'Cairo', to: 'Paris' }
21+
];
22+
23+
console.dir({ flights });
24+
25+
flights = distinct(flights);
26+
27+
console.dir({ flights });

0 commit comments

Comments
 (0)