Tiếp tục sersie về JS snippets. Cùng tìm hiểu thôi! Phần 2 mọi người có thể xem ở đây nhé!
42. isAnagram
Kiểm tra một chuỗi cụ thể có phải là một ký tự đảo ngữ với một chuỗi khác hay không.
const isAnagram = (str1, str2) => { const normalize = str => str .toLowerCase() .replace(/[^a-z0-9]/gi, '') .split('') .sort() .join(''); return normalize(str1) === normalize(str2);
}; isAnagram('sport', 'opstr'); // true
isAnagram('sport', 'opstra'); // flase
43. isBrowser
Kiểm tra môi trường đang chạy hiện tại có phải là trình duyệt hay không. Tránh lỗi khi chạy front-end trên server (Node).
const isBrowser = () => ![typeof window, typeof document].includes('undefined'); isBrowser(); // true (browser)
isBrowser(); // false (Node)
44. isBrowserTabFocused
Kiểm tra tab của trình duyệt có đang được focus không.
const isBrowserTabFocused = () => !document.hidden; isBrowserTabFocused(); // true
45. isLowerCase
Kiểm tra chuỗi có phải chữ thường không
const isLowerCase = str => str === str.toLowerCase(); isLowerCase('abc'); // true
isLowerCase('_@.com$'); // true
isLowerCase('_@.com'); // false
46. isUpperCase
Kiểm tra chuỗi có phải chữ in hoa không
const isUpperCase = str => str === str.toUpperCase(); isUpperCase('ABC'); // true
isLowerCase('_@.com$'); // true
isLowerCase('_@.com'); // false
47. isNil
kiểm tra một giá trị là null hay undefined.
const isNil = val => val === undefined || val === null; isNil(null); // true
isNil(undefined); // true
isNil(1); // false
48. maxN
Return n phần tử lớn nhất từ một mảng. Nếu n lớn hơn hoặc bằng độ dài của mảng, nó sẽ trả về danh sách ban đầu được sắp xếp theo thứ tự giảm dần.
const maxN = (arr, n = 1) => [...arr].sort((a, b) => b - a).slice(0, n); maxN([1, 2, 3]); // [3]
maxN([1, 2, 3], 2); // [3,2]
49. minN
Return n phần tử nhỏ nhất từ một mảng. Nếu n lớn hơn hoặc bằng độ dài của mảng, nó sẽ trả về danh sách ban đầu được sắp xếp theo thứ tự tăng dần.
const maxN = (arr, n = 1) => [...arr].sort((a, b) => b - a).slice(0, n); maxN([1, 2, 3]); // [1]
maxN([1, 2, 3], 2); // [1,2]
50. radsToDegrees
Convert từ radian sang độ.
const radsToDegrees = rad => (rad * 180.0) / Math.PI; radsToDegrees(Math.PI / 2); // 90
51. Random mã màu Hexadecimal
const randomHexColorCode = () => { let n = (Math.random() * 0xfffff * 1000000).toString(16); return '#' + n.slice(0, 6);
}; randomHexColorCode(); // #3c3834
52. randomIntegerInRange
Random một số nguyên ngẫu nhiên trong một phạm vi được chỉ định.
const randomIntegerInRange = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min; randomIntegerInRange(0, 5); // 4
53. randomNumberInRange
Random một số ngẫu nhiên trong một phạm vi được chỉ định.
const randomNumberInRange = (min, max) => Math.random() * (max - min) + min; randomNumberInRange(2, 10); // 8.678929973625086
54. scrollToTop
cuộn lên đầu trang hiện tại.
const scrollToTop = () => { const c = document.documentElement.scrollTop || document.body.scrollTop; if (c > 0) { window.requestAnimationFrame(scrollToTop); window.scrollTo(0, c - c / 8); }
}; scrollToTop();
55. setStyle
Set thuộc tính css
cconst setStyle = (el, ruleName, val) => (el.style[ruleName] = val); setStyle(document.querySelector('p'), 'font-size', '20px');
// Thẻ <p> đầu tiên sẽ có font-size là 20px
56. clone
Clone 1 object
const clone = obj => Object.assign({}, obj); const a = { x: 'a', y: 1 };
const b = clone(a);
console.log(b); // { x: 'a', y: 1 }
57. sleep
Delay thực thi một hàm không đồng bộ bằng cách đưa vào trạng thái ngủ.
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); async function sleepyWork() { console.log("I'm gonna sleep for 1 second."); await sleep(1000); console.log('I woke up after 1 second.');
}
58. smoothScroll
Cuộn đến phần tử được gọi
const smoothScroll = element => document.querySelector(element).scrollIntoView({ behavior: 'smooth' }); smoothScroll('#myId'); // scroll đến id là myId
smoothScroll('.myClass'); // scroll đến phần tử đầu tiên có class là myClass
59. sortCharactersInString
Sắp xếp các ký tự trong một chuỗi theo thứ tự bảng chữ cái.
const sortCharactersInString = str => [...str].sort((a, b) => a.localeCompare(b)).join(''); sortCharactersInString('protocol'); // 'cloooprt'
60. stripHTMLTags
Xóa các thẻ html trong chuỗi
const stripHTMLTags = str => str.replace(/<[^>]*>/g, ''); stripHTMLTags('<p><em>viblo</em> <strong>may</strong> <i>fest</i></p>'); // 'viblo may fest'
61. splitLines
Tách một chuỗi nhiều dòng thành một mảng các dòng.
const splitLines = str => str.split(/\r?\n/); splitLines('This\nis viblo\nmay\nfest.\n'); // ['This', 'is viblo', 'may', 'fest.' , '']
Đến đây kết thúc phần 3 của bài. To be continue
Thanks for reading