-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathcharacterFrequency.js
More file actions
64 lines (54 loc) · 1.3 KB
/
Copy pathcharacterFrequency.js
File metadata and controls
64 lines (54 loc) · 1.3 KB
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
/*
* Write a function that takes as its input a string and returns an array of
* arrays showing the frequency of characters.
*
*
* :: Example ::
*
* characterFrequency('mississippi') ===
* [
* ['i', 4],
* ['s', 4],
* ['p', 2],
* ['m', 1]
* ]
*
* [['i', 4],['s', 4],['p', 2],['m', 1]]
*/
function characterFrequency1 (myString) {
var result = [],
charCounts = {},
charPair = [];
for (var i = 0; i < myString.length; i++) {
if (charCounts[myString[i]]) {
charCounts[myString[i]] = charCounts[myString[i]] + 1;
} else {
charCounts[myString[i]] = 1;
}
}
for (key in charCounts) {
charPair[0] = key;
charPair[1] = charCounts[key];
console.log(charPair);
result.push(charPair);
}
return result;
}
// Alternate implementation using ternary operator
function characterFrequency2 = (string) {
var result = [];
var charPair = [];
var charCounts = {};
// Count occurances of characters in string
for (var i = 0; i < string.length; i++) {
charCounts[string[i]] = charCounts[string[i]] ? charCounts[string[i]]+1 : 1;
}
// Create result arrays
for (key in charCounts) {
charPair[0] = key;
charPair[1] = charCounts[key];
result.push(charPair);
}
console.log(result);
return result;
};