Top functions hữu ích trong Javascript giúp code của bạn clean hơn
Function là một khái niệm quen thuộc trong các ngôn ngữ lập trình và với Javascript cũng vậy. Nó cho phép chúng ta đóng gói và tái sử dụng code một cách hiệu quả.
Trong Javascript function có thể viết the 4 cách viết như sau
Regular function
function sum(a, b) {
return a + b;
}
Function expression
const sum = function (a, b) {
return a + b;
};
Arrow function
const sum = (a, b) => {
return a + b;
};
const sum = (a, b) => a + b;
Generator function
function* indexGenerator() {
let index = 0;
while (true) {
yield index++;
}
}
const g = indexGenerator();
console.log(g.next().value); // => 0
console.log(g.next().value); // => 1
Ở trên là 4 cách thể hiện function trong Javascript. Ngoài việc tự định nghĩa function để sử dụng, chúng ta có thể dùng các function có sẵn của Javascript. Dưới đây là những functions hữu ích giúp bạn viết code trở nên đơn giản hơn
1. Create an array of numbers from 1 to n
const range = (n) => Array.from({ length: n }, (_, i) => i + 1);
console.log(range(10)); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2. Create an array of numbers from 1 to n with a step
const range = (n, step = 1) => Array.from({ length: n }, (_, i) => i * step);
console.log(range(10, 2)); // [1, 3, 5, 7, 9]
3. Create an array and fill it with a value
const fill = (len, value) => Array(len).fill(value);
console.log(fill(3, 0)); // [0, 0, 0]
4. Shuffling an array
const shuffleArray = (arr) => arr.sort(() => 0.5 - Math.random());
console.log(shuffleArray([1, 2, 3, 4])); // [3, 2, 1, 4]
5. Remove Duplicated from Array
const removeDuplicated = (arr) => [...new Set(arr)];
console.log(removeDuplicated([1, 2, 3, 3, 4, 4, 5, 5, 6])); // Result: [ 1, 2, 3, 4, 5, 6 ]
const removeDuplicate = (arr) =>
Object.values(arr.reduce((a, b) => (a[b] ? a : { ...a, [b]: b }), {}));
console.log(removeDuplicate([1, 2, 3, 3])); // Result: [ 1, 2, 3, ]
6. Generate random number
const random = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;
console.log(random(1, 10)); // Result: 1 ~ 10
7. Find largest numbers
const findLargest = (arr) => arr.map((subArr) => Math.max(...subArr));
console.log(
findLargest([
[4, 5, 1, 3],
[13, 27, 18, 26],
[32, 35, 37, 39],
[1000, 1001, 857, 1],
])
); // [5, 27, 39, 1001]
8. Find smallest numbers
const findSmallest = (arr) => arr.map((subArr) => Math.min(...subArr));
console.log(
findSmallest([
[4, 5, 1, 3],
[13, 27, 18, 26],
[32, 35, 37, 39],
[1000, 1001, 857, 1],
])
); // [1, 18, 32, 857]
9. Pick a random element from an array
const pick = (arr) => arr[Math.floor(Math.random() * arr.length)];
console.log(pick([1, 2, 3, 4])); // 2
10. Convert array to object
const toObject = (arr) => ({ ...arr });
console.log(toObject(["a", "b"])); // { 0: 'a', 1: 'b' }
11. Find intersection of two arrays
const intersection = (arr1, arr2) => {
const set = new Set(arr1);
return arr2.filter((x) => set.has(x));
};
console.log(intersection([1, 2, 3], [2, 3, 4])); // [2, 3]
12. Remove falsy values from an array
const compact = (arr) => arr.filter(Boolean);
console.log(compact([0, 1, false, 2, "", 3, "a", "e" * 23, NaN, "s", 34])); // [1, 2, 3, 'a', 's', 34]
13. Reverse String
const reverseString = (str) => str.split("").reverse().join("");
console.log(reverseString("hello")); // olleh
14. Is String Palindrome
const isPalindrome = (str) => str === str.split("").reverse().join("");
console.log(isPalindrome("madam")); // true
15. Check object is empty or not
const isEmpty = (obj) => Object.keys(obj).length === 0;
console.log(isEmpty({})); // true
16. Find the number of days in a month
const getDaysInMonth = (date) =>
new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();
console.log(getDaysInMonth(new Date())); // 31
17. Generate a random color
const getRandomColor = () =>
`#${Math.floor(Math.random() * 16777215).toString(16)}`;
console.log(getRandomColor()); // #f0f0f0
const randomHex = () =>
`#${Math.floor(Math.random() * 0xffffff)
.toString(16)
.padEnd(6, "0")}`;
console.log(randomHex()); // #f0f0f0