Một vài function nhỏ viêt bằng JavaScript có thể có ích cho bạn 2

Tram Ho

unzip

Dùng Array.prototype.map() để biến mỗi phần tử thành một mảng. Sử dụng Array.prototype.reduce () và Array.prototype.forEach () để mapping các giá trị được nhóm thành các mảng riêng lẻ.

frequencies

Trả về một đối tượng với các giá trị duy nhất của một mảng và số lần xuất hiện của các giá trị.

Sử dụng Array.prototype.reduce () để mapping các giá trị duy nhất vào các key của đối tượng, thêm vào các key hiện có mỗi khi gặp cùng một giá trị.

mostFrequent

Trả về phần tử xuất hiện nhiều nhất trong một mảng.

Sử dụng Array.prototype.reduce () để mapping các giá trị duy nhất vào các key của object, thêm vào các key hiện có mỗi khi gặp cùng một giá trị. Sử dụng Object.entries () trên kết quả kết hợp với Array.prototype.reduce () để nhận giá trị xuất hiện nhiều nhất trong mảng.

isContainedIn

Trả về true nếu các phần tử của mảng đầu tiên được chứa trong phần thứ hai bất kể thứ tự, sai khác.

Sử dụng vòng lặp for…of cho Tập Set được tạo từ mảng đầu tiên. Sử dụng Array.prototype.some () để kiểm tra xem tất cả các giá trị riêng biệt có được chứa trong mảng thứ hai hay không, sử dụng Array.prototype.filter () để so sánh số lần xuất hiện của từng giá trị riêng biệt trong cả hai mảng. Trả về false nếu số lượng của bất kỳ phần tử nào lớn hơn trong mảng thứ nhất so với phần tử thứ hai, ngược lại, true

haveSameContents

Trả về true nếu hai mảng chứa các phần tử giống nhau bất kể thứ tự, sai khác.

Sử dụng vòng lặp for cho một Tập Set được tạo từ các giá trị của cả hai mảng. Sử dụng Array.prototype.filter () để so sánh số lượng xuất hiện của từng giá trị riêng biệt trong cả hai mảng. Trả về false nếu tổng số không khớp với bất kỳ phần tử nào, ngược lại trả về true

weightedSample

Trả về một phần tử ngẫu nhiên từ một mảng, sử dụng các trọng số được cung cấp làm xác suất cho mỗi phần tử.

Sử dụng Array.prototype.reduce () để tạo một mảng tổng một phần cho mỗi giá trị theo trọng số. Sử dụng Math.random () để tạo số ngẫu nhiên và Array.prototype.findIndex () để tìm chỉ mục chính xác dựa trên mảng được tạo trước đó. Cuối cùng, trả về phần tử của mảng với chỉ mục được sản xuất.

JSONtoCSV

Chuyển đổi một mảng các đối tượng thành chuỗi giá trị được phân tách bằng dấu phẩy (CSV) chỉ chứa các cột được chỉ định.

Sử dụng Array.prototype.join (dấu phân cách) để kết hợp tất cả các tên trong các cột để tạo hàng đầu tiên. Sử dụng Array.prototype.map () và Array.prototype.reduce () để tạo một hàng cho mỗi đối tượng, thay thế các giá trị không tồn tại bằng các chuỗi trống và chỉ mapping giá trị trong các cột. Sử dụng Array.prototype.join (‘ n’) để kết hợp tất cả các hàng thành một chuỗi.

countBy

Nhóm các phần tử của một mảng dựa trên hàm đã cho và trả về số lượng phần tử trong mỗi nhóm.

Sử dụng Array.prototype.map () để mapping các giá trị của một mảng thành tên hàm hoặc thuộc tính. Sử dụng Array.prototype.reduce () để tạo một đối tượng, trong đó các khóa được tạo ra từ các kết quả được mapping.

differenceBy

Trả về sự khác biệt giữa hai mảng, sau khi áp dụng hàm được cung cấp cho từng phần tử của cả hai mảng.

Tạo Tập Set bằng cách áp dụng fn cho từng phần tử trong b, sau đó sử dụng Array.prototype.map () để áp dụng fn cho từng phần tử trong a, sau đó Array.prototype.filter ()

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo