1. Reverse a String
function reverseString(str) {
let result = "";
for (let i = str.length - 1; i >= 0; i--) {
result += str[i];
}
return result;
}
console.log(reverseString("hello")); // "olleh"
2. Find Duplicates
function findDuplicates(arr) {
let flatArr = arr.flat(Infinity);
let seen = new Set();
let duplicates = [];
for (let item of flatArr) {
if (seen.has(item)) {
duplicates.push(item);
} else {
seen.add(item);
}
}
return [...new Set(duplicates)];
}
console.log(findDuplicates([1, 2, [3, 4, 2], 5, 1])); // [2, 1]
3. First Non-Repeating Character
function firstNonRepeatingChar(str) {
let freq = {};
for (let char of str) {
freq[char] = (freq[char] || 0) + 1;
}
for (let char of str) {
if (freq[char] === 1) return char;
}
return null;
}
console.log(firstNonRepeatingChar("swiss")); // "w"
4. Flatten Array (recursive approach)
function flattenArray(arr) {
let result = [];
function helper(subArr) {
for (let item of subArr) {
if (Array.isArray(item)) {
helper(item);
} else {
result.push(item);
}
}
}
helper(arr);
return result;
}
console.log(flattenArray([1, [2, [3, 4]], 5])); // [1, 2, 3, 4, 5]
5. Palindrome Check (two-pointer technique)
function isPalindrome(str) {
let left = 0, right = str.length - 1;
while (left < right) {
if (str[left] !== str[right]) return false;
left++;
right--;
}
return true;
}
console.log(isPalindrome("madam")); // true
console.log(isPalindrome("hello")); // false
6. Factorial (recursive and iterative)
function factorial(n) {
if (n === 0) return 1;
return n * factorial(n - 1);
}
console.log(factorial(5)); // 120
7. Fibonacci Sequence
function fibonacci(n) {
let a = 0, b = 1, result = [];
for (let i = 0; i < n; i++) {
result.push(a);
[a, b] = [b, a + b];
}
return result;
}
console.log(fibonacci(7)); // [0,1,1,2,3,5,8]
8. Two Sum Problem
function twoSum(nums, target) {
let map = new Map();
for (let i = 0; i < nums.length; i++) {
let complement = target - nums[i];
if (map.has(complement)) {
return [map.get(complement), i];
}
map.set(nums[i], i);
}
return [];
}
console.log(twoSum([2, 7, 11, 15], 9)); // [0,1]
9. Deep Clone an Object
function deepClone(obj) {
return JSON.parse(JSON.stringify(obj));
}
let original = {a:1, b:{c:2}};
let copy = deepClone(original);
console.log(copy); // {a:1, b:{c:2}}
10. Remove Duplicates from Array
Approach 1: Using a manual loop
function removeDuplicates(arr) {
let result = [];
for (let i = 0; i < arr.length; i++) {
let isDuplicate = false;
// check if arr[i] already exists in result
for (let j = 0; j < result.length; j++) {
if (arr[i] === result[j]) {
isDuplicate = true;
break;
}
}
// if not duplicate, push to result
if (!isDuplicate) {
result.push(arr[i]);
}
}
return result;
}
console.log(removeDuplicates([1, 2, 2, 3, 4, 4, 5])); // [1, 2, 3, 4, 5]
Approach 2: Sorting first, then skipping duplicate
function removeDuplicatesSorted(arr) {
// simple bubble sort (no in-built sort)
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
let temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
let result = [];
for (let i = 0; i < arr.length; i++) {
if (i === 0 || arr[i] !== arr[i - 1]) {
result.push(arr[i]);
}
}
return result;
}
console.log(removeDuplicatesSorted([4, 2, 2, 1, 3, 4])); // [1, 2, 3, 4]
Top comments (0)