17 Dòng JavaScript tiết kiệm tuổi thọ 🔥

Phần 1 của loạt bài về các lớp lót JavaScript tiết kiệm tuổi thọ.

Trong thế giới của JavaScript, ít mã hơn == tốt hơn. Hôm nay, tôi sẽ giới thiệu cho các bạn 34 đoạn mã JavaScript sát thủ (chia thành hai phần).

Trong phần này, tôi sẽ liệt kê các lớp lót khác nhau liên quan đến DOM, mảng và đối tượng theo thứ tự. Phần thứ hai sẽ thảo luận về chuỗi, ngày tháng và một số thứ linh tinh theo thứ tự.

DOM

Kiểm tra xem một phần tử có được tập trung hay không

const hasFocus = (ele) => ele === document.activeElement;

const siblings = (ele) => [].slice.call(ele.parentNode.children).filter((child) => child !== ele);

const getSelectedText = () => window.getSelection().toString();

history.back();
// Or
history.go(-1);

const clearCookies = () => document.cookie
.split(';')
.forEach((c) =>(document.cookie = c.replace(/^ +/, '').replace(/=.*/, `=;expires=${new Date().toUTCString()};path=/`)));

const cookies = document.cookie.split(';').map((item) => item.split('=')).reduce((acc, [k, v]) => (acc[k.trim().replace('"', '')] = v) && acc, {});

So sánh hai mảng

// `a` and `b` are arrays
const isEqual = (a, b) => JSON.stringify(a) === JSON.stringify(b);
// Or
const isEqual = (a, b) => a.length === b.length && a.every((v, i) => v === b[i]);
// Examples
isEqual([1, 2, 3], [1, 2, 3]); // true
isEqual([1, 2, 3], [1, '2', 3]); // false

const toObject = (arr, key) => arr.reduce((a, b) => ({ ...a, [b[key]]: b }), {});
// Or
const toObject = (arr, key) => Object.fromEntries(arr.map((it) => [it[key], it]));
// Example
toObject([
{ id: '1', name: 'Alpha', gender: 'Male' },
{ id: '2', name: 'Bravo', gender: 'Male' },
{ id: '3', name: 'Charlie', gender: 'Female' }],
'id');
/*
{
'1': { id: '1', name: 'Alpha', gender: 'Male' },
'2': { id: '2', name: 'Bravo', gender: 'Male' },
'3': { id: '3', name: 'Charlie', gender: 'Female' }
}
*/

const countBy = (arr, prop) => arr.reduce((prev, curr) => ((prev[curr[prop]] = ++prev[curr[prop]] || 1), prev), {});
// Example
countBy([
{ branch: 'audi', model: 'q8', year: '2019' },
{ branch: 'audi', model: 'rs7', year: '2020' },
{ branch: 'ford', model: 'mustang', year: '2019' },
{ branch: 'ford', model: 'explorer', year: '2020' },
{ branch: 'bmw', model: 'x7', year: '2020' },
],
'branch');
// { 'audi': 2, 'ford': 2, 'bmw': 1 }

const isNotEmpty = (arr) => Array.isArray(arr) && Object.keys(arr).length > 0;
// Examples
isNotEmpty([]); // false
isNotEmpty([1, 2, 3]); // true

Kiểm tra xem nhiều đối tượng có bằng nhau không

const isEqual = (...objects) => objects.every((obj) => JSON.stringify(obj) === JSON.stringify(objects[0]));
// Examples
isEqual({ foo: 'bar' }, { foo: 'bar' }); // true
isEqual({ foo: 'bar' }, { bar: 'foo' }); // false

const pluck = (objs, property) => objs.map((obj) => obj[property]);
// Example
pluck([
{ name: 'John', age: 20 },
{ name: 'Smith', age: 25 },
{ name: 'Peter', age: 30 },
],
'name');
// ['John', 'Smith', 'Peter']

const invert = (obj) => Object.keys(obj).reduce((res, k) => Object.assign(res, { [obj[k]]: k }), {});
// Or
const invert = (obj) => Object.fromEntries(Object.entries(obj).map(([k, v]) => [v, k]));
// Example
invert({ a: '1', b: '2', c: '3' }); // { 1: 'a', 2: 'b', 3: 'c' }

const removeNullUndefined = (obj) => 
Object.entries(obj)
.reduce((a, [k, v]) => (v == null ? a : ((a[k] = v), a)), {});
// Or
const removeNullUndefined = (obj) =>
Object.entries(obj)
.filter(([_, v]) => v != null)
.reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {});
// Or
const removeNullUndefined = (obj) => Object.fromEntries(Object.entries(obj).filter(([_, v]) => v != null));
// Example
removeNullUndefined({
foo: null,
bar: undefined,
fuzz: 42}); 
// { fuzz: 42 }

const sort = (obj) =>
Object.keys(obj)
.sort()
.reduce((p, c) => ((p[c] = obj[c]), p), {});
// Example
const colors = {
white: '#ffffff',
black: '#000000',
red: '#ff0000',
green: '#008000',
blue: '#0000ff',
};
sort(colors);
/*
{
black: '#000000',
blue: '#0000ff',
green: '#008000',
red: '#ff0000',
white: '#ffffff',
}
*/

const isPromise = (obj) =>
!!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';

const isArray = (obj) => Array.isArray(obj);

Cảm ơn bạn đã dành thời gian. Tôi sẽ rất vui nếu bạn chia sẻ suy nghĩ của mình.

Chúc bạn viết mã vui vẻ!

Nội dung khác tại plainenglish.io

Suggested posts

Tìm kiếm thông tin về tên miền

Đoạn trích từ Small, Sharp Software Tools của Brian P. Hogan

Tìm kiếm thông tin về tên miền

Khi bạn gửi yêu cầu tới facebook.com, máy tính của bạn sẽ tra cứu tên miền để dịch tên miền đó thành địa chỉ IP để máy tính của bạn có thể thực hiện kết nối đó.

Cuộc cách mạng không cần mã: Giải phóng sự thịnh vượng trong kinh doanh với Webflow, Framer, Bubble.io,

Cuộc cách mạng không cần mã: Giải phóng sự thịnh vượng trong kinh doanh với Webflow, Framer, Bubble.io,

Bắt tay vào một hành trình đổi mới và thành công ly kỳ khi bạn khai thác tiềm năng chưa được khai thác của các nền tảng không mã đáng ngạc nhiên này. Để tôi chia sẻ với bạn một câu chuyện về Sapna, một nữ doanh nhân xuất sắc.

Related posts

CUỘC SỐNG KHÔNG GIỚI HẠN

Khi bạn lớn lên, bạn có xu hướng được bảo rằng thế giới là như vậy và cuộc sống của bạn chỉ là sống cuộc sống của bạn trong thế giới, không bao giờ mạo hiểm cuộc sống của bạn, chỉ cần đi theo một con đường đã định sẵn và cuối cùng sẽ chết, và cố gắng không bash the wall too much.But that's a very limited life.

Không còn mật khẩu — mật khẩu sẽ thay thế mật khẩu của bạn như thế nào

Không còn mật khẩu — mật khẩu sẽ thay thế mật khẩu của bạn như thế nào

Để tránh sự mơ hồ, các thuật ngữ sau đây sẽ được sử dụng; Trình xác thực; Điện thoại di động được sử dụng để đăng nhập Website; Trang web hoặc ứng dụng mà người dùng đang sử dụng để thực hiện yêu cầu đăng nhập Dịch vụ; Nhà cung cấp cung cấp dịch vụ nhất định, ví dụ:

Học tập trong tuần làm việc quan trọng hơn bạn nghĩ

Học tập trong tuần làm việc quan trọng hơn bạn nghĩ

Chúng ta thường thấy mình phải vật lộn để thực hiện những gì chúng ta biết là tốt cho chúng ta. Từ việc nói với một người quan trọng khác rằng chúng ta yêu họ đến việc nhớ nói chuyện như một tên cướp biển, sẽ luôn có những người cho rằng không cần thiết phải tổ chức các sự kiện trong ngày, tuần hoặc tháng vì họ đã làm những việc đó rồi.

3 cách đã được chứng minh để cải thiện kỹ năng viết của bạn

Lợi ích của việc viết và các chiến lược giúp bạn làm điều đó

3 cách đã được chứng minh để cải thiện kỹ năng viết của bạn

Vào năm 2022, với việc phát hành GPT-3, kỹ năng viết dường như trở nên ít quan trọng hơn. Với AI, những người viết kém cũng có thể tạo ra đội ngũ nhân viên chất lượng.