🐼 Ký Tự Hoa 🐼

Viết hoa ký tự bất kỳ trong chuỗi

Tùy theo vị trí bạn truyền vào. Log nó ra bản điều khiển
js_masterGiải Thuật
cau-truc-du-lieu-va-giai-thuat.jpg

Chào các bạn

Trong bài viết này mình sẽ hướng dẫn các bạn viết hoa ký tự bất kỳ trong chuỗi.

Viết chức năng

1function editString(str, position = 0) {
2    if (!str && typeof str !== "string") {
3        throw new SyntaxError(`Đầu vào ${str} không phải là chuỗi`);
4    }
5
6    if (position < 0) {
7        position = 0;
8    }
9
10    if (str.length < position) {
11        throw new Error(
12            `Position ${position} lớn hơn độ dài chuỗi ${str.length}`
13        );
14    }
15
16    let kyTu = str[position];
17
18    let ketQua = str.replace(kyTu, (math, index) => {
19        if (index === position) {
20            return math.toUpperCase();
21        } else {
22            return math;
23        }
24    });
25
26    console.log(ketQua);
27}
28
29editString("hồ quang trí", -1); // Hồ quang trí
30// editString("hồ quang trí", 0) ; // Hồ quang trí
31// editString("hồ quang trí", 34); // Uncaught Error: Position 34 lớn hơn độ dài chuỗi 12
32// editString([], 34); // Uncaught SyntaxError: Đầu vào object không phải là chuỗi

Cách chạy

Khi chúng ta gọi editString("hồ quang trí", -1) chức năng thực hiện hành động như sau.

  1. Chạy vào body chức năng
  2. Kiểm tra if (!str && typeof str !== "string")
    • Nếu true thì ném ra lỗi và chức năng dừng. Và thoát khỏi chức năng
    • Nếu false thì chức năng chạy xuống tiếp.
  3. Kiểm tra if (position < 0)
    • Nếu true thì cập nhật position = 0
  4. Kiểm tra str.length < position
    • Nếu true thì ném ra lỗi và chức năng dừng. Và thoát khỏi chức năng
    • Nếu false thì chức năng chạy xuống tiếp.
  5. Gán kyTu = str[position]
  6. Gán ketQua = str.replace(...)
    • Chức năng replace(kyTu, (math, index) => {...}) thực hiện 2 tác vụ
      1. kyTu chính là str[position]
      2. (math, index) => {...}) chính là chức năng. Trong chức năng khi replace gọi nó chạy
        • Nếu if (index === position) thì chúng ta biến ký tự thành hoa và trả về
        • Ngược lại thì trả về math
  7. Chúng ta log kết quả

Nhược điểm là chức năng replace này phải chạy từ đầu đến cuối chuỗi.

Chuyển sang cắt chuỗi và nối chuỗi

1function editString(str, position = 0) {
2    if (typeof str !== "string") {
3        throw new SyntaxError(`Đầu vào ${typeof str} không phải là chuỗi`);
4    }
5
6    // Nếu < 0
7    if (position < 0) {
8        let ketQua = str[0].toUpperCase() + str.slice(1);
9        console.log(ketQua);
10        return;
11    }
12
13    if (str.length < position) {
14        throw new Error(
15            `Position ${position} lớn hơn độ dài chuỗi ${str.length}`
16        );
17    }
18
19    // Nếu lớn hơn 1
20    let ketQua =
21        str.slice(0, position) +
22        str[position].toUpperCase() +
23        str.slice(position + 1);
24
25    console.log(ketQua);
26}
27
28editString("hồ quang trí", 1); // hỒ quang trí
29
30/**
31 * "hồ quang trí".slice(0, 1) trả về "h"
32 * "hồ quang trí"[1] trả về "ồ".toUpperCase() trả về "Ồ"
33 * "hồ quang trí".slice(1 + 1) trả về " quang trí"
34 * Cộng chuỗi thành "hỒ quang trí"
35 */

Tổng kết

Trong bài viết này mình đã nói qua về chức năng. Tuy không hoàn hảo nhưng cũng đủ để các bạn mới học tìm hiểu.

  • chuỗi
  • ký tự
  • string

OFFJS.COM - Blog học tập giải trí - 🐲

Chia sẻ nhiều kiến thức thú vị trong lập trình cũng như cuộc sống.

Giới thiệu


Trang web này mình sẽ nói về kiến thức lập trình và cuộc sống mà các bạn mới học hay đang dự định học. Có một bước đi đầu đời vững chắc.

Hồ Quang Trí.jpg

Đi kèm với đó là những lý thuyết và các dòng code minh họa. Để các bạn dễ hình dung.

Đơn nhiên cũng không dễ dàng ngày một ngày hai mà học hết được.

Học Tập Là Một Con Đường Dài Vô Tận

Nó sẽ nuốt các bạn vô số thời gian nhưng bù lại khi đã biết thì mọi thứ thật là tuyệt.

1console.log("Hồ Quang Trí");

Nếu có ai nói bạn học lập trình trong vòng 3 đến 6 tháng thì mình xin nói thật không bao giờ có chuyện đó nhé.

Chúc các bạn thành công.

Chân trang

phone-toan-phat.png

0353210168

address-toan-phat.png

Việt Nam