Giả sử, chúng ta phải viết một hàm, chẳng hạn như translate () chấp nhận một chuỗi làm đối số đầu tiên và bất kỳ số từ nào sau đó.
Chuỗi thực sự sẽ chứa n $ ký hiệu như thế này -
$ 0 này nhiều hơn $ 1 chỉ là $ 2. Sau đó, sẽ có 3 chuỗi sẽ thay thế các vị trí tương ứng.
Ví dụ -
Nếu lệnh gọi hàm giống như thế này -
translate (‘$ 0 này cao hơn $ 1 chỉ là $ 2.’, ‘game’, ‘than’, ‘game’);
Đầu ra của hàm phải là -
Trò chơi này không chỉ là một trò chơi.
Chức năng này ít nhiều giống với mẫu đưa vào JavaScript.
Do đó, hãy viết mã cho chức năng này -
Chúng tôi sẽ sử dụng phương thức String.prototype.replace () ở đây. Chúng tôi biết rằng nếu chúng tôi sử dụng một mẫu regex để khớp với tất cả các lần xuất hiện và sử dụng một hàm làm tham số thứ hai, thì nó sẽ được thực thi cho mỗi lần khớp. Chúng tôi sẽ làm giống hệt như vậy ở đây.
Mã để thực hiện việc này sẽ là -
Ví dụ
const str ='$ 0 này nhiều hơn $ 1 chỉ là $ 2'; const translate =(str, ... văn bản) => {const regex =/ \ $ (\ d +) / gi; return str.replace (regex, (item, index) => {return text [index];});}; console.log (translate (str, 'game', 'just', 'game')));Đầu ra
Đầu ra trong bảng điều khiển sẽ là -
Trò chơi này không chỉ là một trò chơi