👉 Giải Thuật 👈

Sắp xếp các từ trong chuỗi

Theo thứ tự tăng hoặc giảm. Áp dụng phương pháp có sẵng.
js_masterGiải Thuật
cau-truc-du-lieu-va-giai-thuat.jpg

Trong bài này mình sẽ hướng dẫn các bạn sắp xếp các từ trong chuỗi theo khoảng trắng

Mình sẽ áp dụng phương pháp có sẵng nhé

Bắt đầu nào 😉

  1. Sort từ theo thứ tự giảm
1let nameMy = "Hồ Quang Trí";
2
3function sortWord(str) {
4    let arrString = str.split(/\s+/g);
5
6    for (let i = 0; i < arrString.length; i++) {
7        let ketQua = arrString[i].split("").sort((a, b) => {
8            if (a < b) {
9                return 1;
10            } else if (a > b) {
11                return -1;
12            }
13            return 0;
14        });
15        arrString[i] = ketQua.join("");
16    }
17    // arrString = ['ồH', 'ungaQ', 'írT']
18    return arrString.join(" ");
19}
20
21console.log(sortWord(nameMy)); // ồH ungaQ írT
  1. Sort từ theo thứ tự tăng
1let nameMy = "Hồ Quang Trí";
2
3function sortWord(str) {
4    let arrString = str.split(/\s+/g);
5
6    for (let i = 0; i < arrString.length; i++) {
7        let ketQua = arrString[i].split("").sort((a, b) => {
8            if (a > b) {
9                return 1;
10            } else if (a < b) {
11                return -1;
12            }
13            return 0;
14        });
15        arrString[i] = ketQua.join("");
16    }
17    // arrString = ['ồH', 'ungaQ', 'írT']
18    return arrString.join(" ");
19}
20
21console.log(sortWord(nameMy)); // Hồ Qagnu Trí

Bây giờ chúng ta cùng xem cách hoạt động của nó

Khi chúng ta gọi console.log(sortWord(nameMy)) nó bắt đầu chạy sortWord(nameMy)myName ở đây là gì?

Chính là let nameMy = "Hồ Quang Trí" đúng không. Tiếp theo chúng ta tạo biến let arrString và gán giá trị của nó bằng str.split(/\s+/g). str.split(/\s+/g) nghĩa là "Hồ Quang Trí".split(/\s+/g). split(/\s+/g) này là một chức năng. Chức năng đó cần truyền một giá trị là ký tự mình muốn cắt.

/\s+/g có 2 ý nghĩa

  1. \s+ ở đây có nghĩa là Một hoặc nhiều ký tự khoảng trắng
  2. g ở đây là global chạy hết chuỗi

Khi chúng ta chạy xong "Hồ Quang Trí".split(/\s+/g) là chúng ta có dc một array ["Hồ", "Quang", "Trí"]

Tiếp đến chúng ta lặp mãng array đó. Cứ mỗi lần lặp chúng ta tạo một biến ketQua và gán giá trị của nó là kết quả chúng ta đả sort theo thứ tự tăng hoặc giảm.

Và bây giờ chúng ta cập nhật lại kết quả đó vào mảng ["Hồ", "Quang", "Trí"] thành ['ồH', 'ungaQ', 'írT'] mà theo cách mình tăng hoặc giảm.

Cuối cùng chúng ta join(" ") nó lại bằng một ký tự

Vậy là chúng ta đã làm xong rồi đó. Tuy không hoàn hảo nhưng đó cũng là một cách.

Giả sử nếu không có khoảng trắng để cắt thì sao. Chúng ta chỉ cần lấy cái chức năng

1string.split("").sort((a, b) => {
2            if (a > b) {
3                return 1;
4            } else if (a < b) {
5                return -1;
6            }
7            return 0;
8})

Bạn chỉ cần thay string ấy thành đầu vào của bạn là xong. Sau đó chúng ta lại join('') rất đơn giản.

Kỷ thuật rất là nhiều thứ

Cũng tùy câu hỏi bài toán mà chúng ta áp dụng các cách khác nhau. Nhưng đối với mình với bài toán này. Cách giải trên cũng là một cách.

😉😉😉😉😉

  • Sắp xếp
  • từ
  • tăng
  • giảm
  • javascript
  • giải thuật

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