This is Part 3 of my series of posts on Data Structures and Algorithms in Javascript...to get you started.
In Part 3, we will cover
- Most frequently occurring item in an array
- Sum of elements of a nested array
- Array chunks
1. Find the most frequently occurring item in an array
Here, a hash table is used to store each element of the array and its frequency (count) as key-value pairs.
let array = [2, 4, 1, 6, 1, 40, 1, 2, 4, 10, 1];
function mostFrequent(arr) {
let hashMap = {};
let mostFreq = { value: undefined, count: 0 };
for (let i = 0; i < arr.length; i++) {
if (!hashMap[arr[i]]) {
hashMap[arr[i]] = 1; //set count to 1 initially
} else {
++hashMap[arr[i]]; //increment count
}
if (mostFreq.count < hashMap[arr[i]]) {
//make the new element the most frequent one
mostFreq.value = arr[i];
mostFreq.count = hashMap[arr[i]];
}
}
return mostFreq.value;
}
console.log(mostFrequent(array));
2. Find the sum of elements of a nested array
Recursion is used to find the sum.
let array = [1, 2, 3, [4, 5], [6, 7, [8, 9]]];
function findSum(arr) {
let sum = 0;
for (let i = 0; i < arr.length; i++) {
if (arr[i].length > 1) {
sum += findSum(arr[i]); //nested array
} else {
sum += arr[i];
}
}
return sum;
}
console.log(findSum(array));
3. Split an array into chunks
let array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
function chunkArray(arr, size) {
let chunk = [];
let result = [];
for (let i = 0; i < arr.length; i++) {
if (chunk.length < size) {
chunk.push(arr[i]);
} else {
result.push(chunk); //add chunk to result
chunk = []; // reset chunk
chunk.push(arr[i]);
}
}
if (chunk.length > 0) {
result.push(chunk);
}
return result;
}
console.log(chunkArray(array, 3));
Top comments (0)