JavaScript interview questions & answers with code
Top JavaScript Interview Questions and Expert Answers with Code Examples
1. Flatten a Nested Object
Question: Write a function to flatten a nested JavaScript object.
Code:
function flattenObject(obj, prefix = '', res = {}) {
for (let key in obj) {
const newKey = prefix ? `${prefix}.${key}` : key;
if (typeof obj[key] === 'object' && obj[key] !== null) {
flattenObject(obj[key], newKey, res);
} else {
res[newKey] = obj[key];
}
}
return res;
}
console.log(flattenObject({ a: { b: { c: 1 } }, d: 2 }));
// Output: { 'a.b.c': 1, d: 2 }
2. Find Duplicates in an Array
Question: Write a function to find duplicate values in an array.
Code:
function findDuplicates(arr) {
const counts = {};
return arr.filter(item => counts[item] ? true : (counts[item] = 1, false));
}
console.log(findDuplicates([1, 2, 2, 3, 4, 4, 5]));
// Output: [2, 4]
3. Implement debounce
Question: Write a debounce
function that limits the rate a function is called.
Code:
function debounce(func, delay) {
let timer;
return function (...args) {
clearTimeout(timer);
timer = setTimeout(() => func.apply(this, args), delay);
};
}
const log = debounce(() => console.log('Logged after 1s'), 1000);
log();
4. Reverse a String Recursively
Question: Write a recursive function to reverse a string.
Code:
function reverseString(str) {
if (str === "") return "";
return reverseString(str.slice(1)) + str[0];
}
console.log(reverseString("hello"));
// Output: "olleh"
5. Check for Palindrome
Question: Write a function to check if a string is a palindrome.
Code:
function isPalindrome(str) {
const cleaned = str.toLowerCase().replace(/[^a-z]/g, '');
return cleaned === cleaned.split('').reverse().join('');
}
console.log(isPalindrome("A man, a plan, a canal, Panama"));
// Output: true
6. Generate Fibonacci Sequence
Question: Write a function to generate Fibonacci sequence up to n
terms.
Code:
function fibonacci(n) {
const fib = [0, 1];
for (let i = 2; i < n; i++) {
fib[i] = fib[i - 1] + fib[i - 2];
}
return fib.slice(0, n);
}
console.log(fibonacci(7));
// Output: [0, 1, 1, 2, 3, 5, 8]
7. Find Intersection of Two Arrays
Question: Write a function to find the intersection of two arrays.
Code:
function arrayIntersection(arr1, arr2) {
return arr1.filter(value => arr2.includes(value));
}
console.log(arrayIntersection([1, 2, 3], [2, 3, 4]));
// Output: [2, 3]
8. Sum of Array with Reduce
Question: Write a function to sum all numbers in an array using reduce
.
Code:
function sumArray(arr) {
return arr.reduce((acc, num) => acc + num, 0);
}
console.log(sumArray([1, 2, 3, 4]));
// Output: 10
9. Filter Even Numbers
Question: Write a function to filter even numbers from an array.
Code:
function filterEven(arr) {
return arr.filter(num => num % 2 === 0);
}
console.log(filterEven([1, 2, 3, 4, 5, 6]));
// Output: [2, 4, 6]
10. Count Occurrences in Array
Question: Write a function to count occurrences of each element in an array.
Code:
function countOccurrences(arr) {
return arr.reduce((acc, num) => {
acc[num] = (acc[num] || 0) + 1;
return acc;
}, {});
}
console.log(countOccurrences([1, 2, 2, 3, 3, 3]));
// Output: {1: 1, 2: 2, 3: 3}
11. Flatten an Array
Question: Write a function to flatten an array of arrays.
Code:
function flattenArray(arr) {
return arr.flat(Infinity);
}
console.log(flattenArray([1, [2, [3, 4]], 5]));
// Output: [1, 2, 3, 4, 5]
12. Capitalize First Letter of Each Word
Question: Write a function to capitalize the first letter of each word in a string.
Code:
function capitalizeWords(str) {
return str.replace(/\b\w/g, char => char.toUpperCase());
}
console.log(capitalizeWords("hello world"));
// Output: "Hello World"
13. Convert Array of Objects to Single Object
Question: Convert an array of objects to a single object with keys and values.
Code:
function arrayToObject(arr) {
return arr.reduce((acc, item) => ({ ...acc, ...item }), {});
}
console.log(arrayToObject([{ a: 1 }, { b: 2 }, { c: 3 }]));
// Output: { a: 1, b: 2, c: 3 }
14. Get Unique Values in Array
Question: Write a function to get unique values in an array.
Code:
function uniqueArray(arr) {
return [...new Set(arr)];
}
console.log(uniqueArray([1, 2, 2, 3, 4, 4, 5]));
// Output: [1, 2, 3, 4, 5]
15. Find Maximum Value in Array
Question: Write a function to find the maximum value in an array.
Code:
function maxInArray(arr) {
return Math.max(...arr);
}
console.log(maxInArray([1, 2, 3, 4, 5]));
// Output: 5
16. Sort an Array of Objects
Question: Sort an array of objects by a specified key.
Code:
function sortByKey(arr, key) {
return arr.sort((a, b) => (a[key] > b[key] ? 1 : -1));
}
console.log(sortByKey([{ age: 30 }, { age: 20 }], 'age'));
// Output: [{ age: 20 }, { age: 30 }]
17. Check Prime Number
Question: Write a function to check if a number is prime.
Code:
function isPrime(num) {
if (num <= 1) return false;
for (let i = 2; i <= Math.sqrt(num); i++) {
if (num % i === 0) return false;
}
return true;
}
console.log(isPrime(11));
// Output: true
18. Binary Search Implementation
Question: Implement binary search on a sorted array.
Code:
function binarySearch(arr, target) {
let left = 0, right = arr.length - 1;
while (left <= right) {
const mid = Math.floor((left + right) / 2);
if (arr[mid] === target) return mid;
if (arr[mid] < target) left = mid + 1;
else right = mid - 1;
}
return -1;
}
console.log(binarySearch([1, 2, 3, 4, 5], 3));
// Output: 2
19. Group By Property
Question: Write a function to group objects by a specified property.
Code:
function groupBy(arr, key) {
return arr.reduce((acc, obj) => {
const keyValue = obj[key];
acc[keyValue] = acc[keyValue] || [];
acc[keyValue].push(obj);
return acc;
}, {});
}
console.log(groupBy([{ age: 20 }, { age: 30 }, { age: 20 }], 'age'));
// Output: { 20: [{ age: 20 }, { age: 20 }], 30
20. Implement a Function to Chunk an Array
Question: Write a function chunkArray
that splits an array into smaller arrays of a specified length. If the array cannot be split evenly, the final chunk should contain the remaining elements.
Example:
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(chunkArray(arr, 3));
// Output: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
console.log(chunkArray(arr, 4));
// Output: [[1, 2, 3, 4], [5, 6, 7, 8], [9]]
Solution:
You can implement this using a loop to create slices of the array in chunks of the specified size.
function chunkArray(arr, size) {
const result = [];
for (let i = 0; i < arr.length; i += size) {
result.push(arr.slice(i, i + size));
}
return result;
}
// Testing the function
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(chunkArray(arr, 3)); // Output: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
console.log(chunkArray(arr, 4)); // Output: [[1, 2, 3, 4], [5, 6, 7, 8], [9]]
Frequently Asked Questions (FAQs)
Did you find this article valuable?
Support
by becoming a sponsor.Share
# Tags