Thứ sáu, 10/01/2020 | 00:00 GMT+7

Đa năng hóa chuỗi trong JavaScript bằng Simplur


Việc xử lý các dạng danh từ số nhiều / số ít trong tiếng Anh có thể khó khăn trong phần mềm. Sử dụng thư viện có tên Simplur cung cấp cho bạn một tiện ích JavaScript đơn giản để giải quyết vấn đề này!

Có một số vấn đề trong lập trình bắt nguồn từ ngôn ngữ của con người. Một trong những vấn đề này là danh từ số ít / số nhiều.

Một củ khoai tây duy nhất được đánh vần là "khoai tây" nhưng hai / nhiều hơn được đánh vần là "khoai tây". Làm thế nào để bạn giải quyết vấn đề này với JavaScript?

Có một số cách, nhưng chúng không đặc biệt thanh lịch…

const shoppingCart = ['guitar', 'bicycle', 'shoes'];

/* 1st approach */
const noun = shoppingCart.length >= 2
  ? 'items'
  : 'item';
const text1 = `You have ${shoppingCart.length} ${noun} in your shopping cart`;
// "You have 3 items in your shopping cart"

/* 2nd approach */
const text2 = `You have ${shoppingCart.length} item(s) in your shopping cart`;
// "You have 3 item(s) in your shopping cart"

Trong khi các giải pháp này hoạt động, một thư viện mới có tên Simplur có một cách thực sự thông minh để giải quyết nó 🌟

Ta đang sử dụng các ví dụ tiếng Anh, nhưng nhiều ngôn ngữ cũng gặp phải vấn đề này khi danh từ số nhiều được đánh vần khác với dạng số ít của chúng.

Sử dụng Simplur

Bạn có thể cài đặt simplur qua npm:

$ npm install simplur

Đây là cách simplur được sử dụng:

import simplur from 'simplur';

const breadCount = 12;
const text = simplur`Get ${breadCount} loa[f|ves] of bread`;
// "Get 12 loaves of bread"

Simplur sử dụng một chuỗi mẫu được gắn thẻ bằng cách sử dụng hàm simplur và khi số lớn hơn 1, nó sử dụng dạng danh từ thứ hai. Đơn giản như thế!

Biểu mẫu Singluar trống

Simplur cũng làm việc với các danh từ chỉ thêm hậu tố cho dạng số nhiều của nó (thay vì thay đổi một phần đáng kể của từ):

const shoppingCart = ['shoes'];
const text = simplur`You have ${shoppingCart.length} item[|s] in your shopping cart`;
// "You have 1 item in your shopping cart"

Bạn chỉ cần bỏ qua biểu mẫu đầu tiên.

Nhiều dạng danh từ

Bạn có thể bao gồm một số danh từ và simplur sẽ "nhìn về phía trước". Trong tiếng Anh, các "trình diễn" của ta như this / that / these / those có thể dễ dàng xử lý theo cách này:

const chipmunks = ['alvin', 'simon', 'theodore'];
const text = simplur`[That|Those] ${chipmunks.length} chipmunk[|s] [is|are] getting away!`;
// "Those 3 chipmunks are getting away!"

Kết luận

Ngôn ngữ tiếng Anh (và hầu hết các ngôn ngữ) không phải là một công cụ chính xác và điều này có thể dẫn đến các vấn đề lập trình thú vị. Hy vọng rằng bạn thấy simplur hữu ích để sử dụng trong các dự án JavaScript của bạn !


Tags:

Các tin liên quan

Hướng dẫn nhanh về phương pháp đối sánh chuỗi trong JavaScript
2020-01-07
Tham quan API quyền JavaScript
2020-01-05
V8 của V8: Chuỗi liên kết tùy chọn và kết hợp Nullish trong JavaScript
2019-12-29
Phân tích cú pháp, xác thực, thao tác và hiển thị ngày và giờ trong JavaScript với Day.js
2019-12-28
Cách bắt đầu với API hiệu suất JavaScript
2019-12-25
Xem xét tất cả 13 bẫy proxy JavaScript
2019-12-19
Khám phá phương thức indexOf cho chuỗi và mảng trong JavaScript
2019-12-17
Thao tác DOM trong JavaScript với innerText và innerHTML
2019-12-14
Cách gói một gói JavaScript Vanilla để sử dụng trong React
2019-12-12
Cách phát triển một trình tải lên tệp tương tác với JavaScript và Canvas
2019-12-12