-
Notifications
You must be signed in to change notification settings - Fork 0
/
countOnly.js
40 lines (31 loc) · 873 Bytes
/
countOnly.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
// const assertEqual = require('./assertEqual.js').assertEqual;
const countOnly = function(allItems, itemsToCount) {
const result = {};
for (const item of allItems) {
if ((item in itemsToCount) && itemsToCount[item]) {
if (item in result) {
// Above if statement can be done as result[item] which will be false if undefined is returned
result[item]++;
} else {
result[item] = 1;
}
}
}
return result;
};
module.exports = countOnly;
// const firstNames = [
// "Karl",
// "Salima",
// "Agouhanna",
// "Fang",
// "Kavith",
// "Jason",
// "Salima",
// "Fang",
// "Joe"
// ];
// const result1 = countOnly(firstNames, { "Jason": false, "Karima": true, "Fang": true });
// assertEqual(result1["Jason"], undefined);
// assertEqual(result1["Karima"], undefined);
// assertEqual(result1["Fang"], 2);