Làm thế nào để bạn làm cho một cái gì đó lặp lại trong javascript?

Trong JavaScript, chúng ta có thể sử dụng hàm setInterval() tích hợp để lặp lại bất kỳ hàm đã cho nào trong một khoảng thời gian nhất định

const myFunction = () => {
    console.log(`Hello world!`);
};

setInterval(myFunction, 2000); // Repeat myFunction every 2 seconds

setInterval() nhận hai tham số. Tham số đầu tiên là hàm sẽ được thực thi và tham số thứ hai là số mili giây phải vượt qua trước khi hàm được thực thi lại

Trong khi đặt thời gian chờ chỉ chạy một chức năng sau một khoảng thời gian chờ nhất định, thì đặt khoảng thời gian sẽ chạy một chức năng vô thời hạn sau một khoảng thời gian chờ nhất định (trừ khi khoảng thời gian đó đã bị "xóa")

Xóa một khoảng thời gian

Bằng cách xóa một khoảng thời gian với clearInterval(), bạn có thể ngăn không cho nó tiếp tục thực hiện chức năng sau mỗi lần trì hoãn

Hướng dẫn JavaScript này giải thích cách sử dụng phương thức chuỗi có tên repeat() với cú pháp và ví dụ

Sự miêu tả

Trong JavaScript, repeat() là một phương thức chuỗi được sử dụng để lặp lại một chuỗi một số lần đã chỉ định. Vì phương thức repeat() là một phương thức của đối tượng String nên nó phải được gọi thông qua một thể hiện cụ thể của lớp String

cú pháp

Trong JavaScript, cú pháp của phương thức repeat() là

string.repeat([count]);

Tham số hoặc Đối số

đếmTùy chọn. Số lần lặp lại chuỗi. Nếu không cung cấp tham số này, phương thức repeat() sẽ sử dụng 0 làm giá trị mặc định và trả về một chuỗi rỗng

trả lại

Phương thức repeat() trả về một chuỗi đã được lặp lại một số lần mong muốn

Nếu tham số đếm không được cung cấp hoặc có giá trị bằng 0, thì phương thức repeat() sẽ trả về một chuỗi rỗng. Nếu tham số đếm là giá trị âm, phương thức repeat() sẽ trả về RangeError.

Ghi chú

  • Phương thức repeat() không làm thay đổi giá trị của chuỗi ban đầu

Thí dụ

Hãy cùng xem một ví dụ về cách sử dụng phương thức repeat() trong JavaScript

Ví dụ

var totn_string = 'TechOnTheNet';

console.log(totn_string.repeat(0));
console.log(totn_string.repeat(1));
console.log(totn_string.repeat(2));
console.log(totn_string.repeat(3));

Trong ví dụ này, chúng tôi đã khai báo một biến có tên totn_string được gán giá trị chuỗi là 'TechOnTheNet'. Sau đó, chúng tôi đã gọi phương thức repeat() của biến totn_string để lặp lại chuỗi một số lần được chỉ định

Chúng tôi đã ghi đầu ra của phương thức repeat() vào nhật ký bảng điều khiển của trình duyệt web, nhằm mục đích trình diễn, để hiển thị kết quả mà phương thức repeat() trả về

Phần sau đây sẽ được xuất ra nhật ký bảng điều khiển trình duyệt web


TechOnTheNet
TechOnTheNetTechOnTheNet
TechOnTheNetTechOnTheNetTechOnTheNet

Như bạn có thể thấy, phương thức repeat() trả về một chuỗi rỗng khi tham số đếm bằng 0, nếu không, nó sẽ lặp lại chuỗi 'TechOnTheNet' với số lần đã chỉ định

Trong bài viết này, tôi sẽ giải thích cách giải quyết thử thách “Lặp lại một chuỗi lặp lại một chuỗi” của freeCodeCamp. Điều này liên quan đến việc lặp lại một chuỗi một số lần nhất định

Có ba cách tiếp cận tôi sẽ đề cập

  1. sử dụng vòng lặp while
  2. sử dụng đệ quy
  3. sử dụng phương thức lặp lại ES6()

Thử thách thuật toán Mô tả

Lặp lại một chuỗi đã cho (đối số đầu tiên)
repeatStringNumTimes("*", 3) should return "***".

repeatStringNumTimes("abc", 3) should return "abcabcabc".

repeatStringNumTimes("abc", 4) should return "abcabcabcabc".

repeatStringNumTimes("abc", 1) should return "abc".

repeatStringNumTimes("*", 8) should return "********".

repeatStringNumTimes("abc", -2) should return "".
1 lần (đối số thứ hai). Trả về một chuỗi rỗng nếu
repeatStringNumTimes("*", 3) should return "***".

repeatStringNumTimes("abc", 3) should return "abcabcabc".

repeatStringNumTimes("abc", 4) should return "abcabcabcabc".

repeatStringNumTimes("abc", 1) should return "abc".

repeatStringNumTimes("*", 8) should return "********".

repeatStringNumTimes("abc", -2) should return "".
1 không phải là số dương
function repeatStringNumTimes(str, num) {
  return str;
}
repeatStringNumTimes("abc", 3);

Các trường hợp thử nghiệm được cung cấp

repeatStringNumTimes("*", 3) should return "***".

repeatStringNumTimes("abc", 3) should return "abcabcabc".

repeatStringNumTimes("abc", 4) should return "abcabcabcabc".

repeatStringNumTimes("abc", 1) should return "abc".

repeatStringNumTimes("*", 8) should return "********".

repeatStringNumTimes("abc", -2) should return "".

Cách tiếp cận số 1. Lặp lại chuỗi với vòng lặp While

Một câu lệnh trong khi thực thi câu lệnh của nó miễn là một điều kiện được chỉ định đánh giá là đúng

Một tuyên bố trong khi trông như thế này

________số 8_______

với một điều kiện được đánh giá trước mỗi lần đi qua vòng lặp. Nếu điều kiện đúng thì câu lệnh được thực hiện. Nếu điều kiện là sai, việc thực thi tiếp tục với bất kỳ câu lệnh nào sau vòng lặp while

Câu lệnh được thực hiện miễn là điều kiện là đúng. Đây là giải pháp


function repeatStringNumTimes(string, times) {
  // Step 1. Create an empty string that will host the repeated string
  var repeatedString = "";

  // Step 2. Set the While loop with (times > 0) as the condition to check
  while (times > 0) { // As long as times is greater than 0, the statement is executed
    // The statement
    repeatedString += string; // Same as repeatedString = repeatedString + string;
    times--; // Same as times = times - 1;
  }
  /* While loop logic
                      Condition       T/F       repeatedString += string      repeatedString        times
    First iteration    (3 > 0)        true            "" + "abc"                  "abc"               2
    Second iteration   (2 > 0)        true           "abc" + "abc"               "abcabc"             1
    Third iteration    (1 > 0)        true          "abcabc" + "abc"            "abcabcabc"           0
    Fourth iteration   (0 > 0)        false
    }
  */
  
  // Step 3. Return the repeated string
  return repeatedString; // "abcabcabc"
}

repeatStringNumTimes("abc", 3);

Và một lần nữa, không có bình luận

function repeatStringNumTimes(string, times) {
  var repeatedString = "";
  while (times > 0) {
    repeatedString += string;
    times--;
  }
  return repeatedString;
}
repeatStringNumTimes("abc", 3);

Cách tiếp cận #2. Lặp lại Chuỗi bằng Điều kiện và Đệ quy

Đệ quy là một kỹ thuật để lặp lại một thao tác bằng cách để một hàm gọi chính nó lặp đi lặp lại cho đến khi nó đạt được kết quả. Có một số tính năng chính của đệ quy phải được đưa vào để nó hoạt động bình thường

  • Đầu tiên là một trường hợp cơ bản. đây là một câu lệnh, thường nằm trong một mệnh đề có điều kiện như
    repeatStringNumTimes("*", 3) should return "***".
    
    repeatStringNumTimes("abc", 3) should return "abcabcabc".
    
    repeatStringNumTimes("abc", 4) should return "abcabcabcabc".
    
    repeatStringNumTimes("abc", 1) should return "abc".
    
    repeatStringNumTimes("*", 8) should return "********".
    
    repeatStringNumTimes("abc", -2) should return "".
    3, dừng đệ quy
  • Thứ hai là một trường hợp đệ quy. đây là câu lệnh trong đó hàm đệ quy được gọi trên chính nó

Đây là giải pháp

function repeatStringNumTimes(string, times) {
  // Step 1. Check if times is negative and return an empty string if true
  if (times < 0) {
    return "";
  }
  
  // Step 2. Check if times equals to 1 and return the string itself if it's the case.
  if (times === 1) {
    return string;
  }
  
  // Step 3. Use recursion
  else {
    return string + repeatStringNumTimes(string, times - 1); // return "abcabcabc";
  }
  /* 
    First Part of the recursion method
    You need to remember that you won’t have just one call, you’ll have several nested calls
                     times       string + repeatStringNumTimes(string, times - 1)
      1st call         3                 "abc" + ("abc", 3 - 1)
      2nd call         2                 "abc" + ("abc", 2 - 1)
      3rd call         1                 "abc" => if (times === 1) return string;
      4th call         0                  ""   => if (times <= 0) return "";
    Second part of the recursion method
      4th call will return      ""
      3rd call will return     "abc"
      2nd call will return     "abc"
      1st call will return     "abc"
    The final call is a concatenation of all the strings
    return "abc" + "abc" + "abc"; // return "abcabcabc";
  */
}
repeatStringNumTimes("abc", 3);

Và một lần nữa, không có bình luận

function repeatStringNumTimes(string, times) {
  if(times < 0) 
    return "";
  if(times === 1) 
    return string;
  else 
    return string + repeatStringNumTimes(string, times - 1);
}
repeatStringNumTimes("abc", 3);

Cách tiếp cận #3. Lặp lại một Chuỗi bằng phương thức lặp lại ES6 ()

Đối với giải pháp này, bạn sẽ sử dụng Chuỗi. nguyên mẫu. phương thức lặp lại ()

  • Phương thức
    repeatStringNumTimes("*", 3) should return "***".
    
    repeatStringNumTimes("abc", 3) should return "abcabcabc".
    
    repeatStringNumTimes("abc", 4) should return "abcabcabcabc".
    
    repeatStringNumTimes("abc", 1) should return "abc".
    
    repeatStringNumTimes("*", 8) should return "********".
    
    repeatStringNumTimes("abc", -2) should return "".
    4 xây dựng và trả về một chuỗi mới chứa số bản sao được chỉ định của chuỗi mà nó được gọi, nối với nhau

Đây là giải pháp


function repeatStringNumTimes(string, times) {
  //Step 1. If times is positive, return the repeated string
  if (times > 0) { // (3 > 0) => true
    return string.repeat(times); // return "abc".repeat(3); => return "abcabcabc";
  }
  
  //Step 2. Else if times is negative, return an empty string if true
  else {
    return "";
  }
}

repeatStringNumTimes("abc", 3);

Và một lần nữa, không có bình luận

function repeatStringNumTimes(string, times) {
  if (times > 0)
    return string.repeat(times);
  else
    return "";
}
repeatStringNumTimes("abc", 3);

Bạn có thể sử dụng toán tử bậc ba làm lối tắt cho câu lệnh if/else, như thế này

times > 0 ? string.repeat(times) : "";

Điều này có thể được đọc như

repeatStringNumTimes("*", 3) should return "***".

repeatStringNumTimes("abc", 3) should return "abcabcabc".

repeatStringNumTimes("abc", 4) should return "abcabcabcabc".

repeatStringNumTimes("abc", 1) should return "abc".

repeatStringNumTimes("*", 8) should return "********".

repeatStringNumTimes("abc", -2) should return "".
0

Sau đó, bạn có thể trả về toán tử bậc ba trong hàm của mình

Tôi hy vọng bạn tìm thấy điều này hữu ích. Đây là một phần trong loạt bài viết “Cách giải quyết các thuật toán FCC” của tôi về các Thách thức về thuật toán freeCodeCamp, trong đó tôi đề xuất một số giải pháp và giải thích từng bước những gì xảy ra bên trong

Hai cách để xác nhận kết thúc của Chuỗi trong JavaScript
Trong bài viết này, tôi sẽ giải thích cách giải quyết thử thách “Xác nhận kết thúc” của freeCodeCamp

Ba cách để đảo ngược một chuỗi trong JavaScript
Bài viết này dựa trên Free Code Camp Basic Algorithm Scripting “Reverse a String”

Ba cách để thừa số hóa một số trong JavaScript
Bài viết này dựa trên Free Code Camp Basic Algorithm Scripting “Factorialize a Number”

Hai cách để kiểm tra Palindromes trong JavaScript
Bài viết này dựa trên Free Code Camp Basic Algorithm Scripting “Check for Palindromes”

Ba cách để tìm từ dài nhất trong chuỗi trong JavaScript
Bài viết này dựa trên Kịch bản thuật toán cơ bản của Free Code Camp “Tìm từ dài nhất trong một chuỗi”

Ba cách đặt tiêu đề cho một câu trong JavaScript
Bài viết này dựa trên Free Code Camp Basic Algorithm Scripting “Tiêu đề trường hợp một câu”

Nếu bạn có giải pháp của riêng mình hoặc bất kỳ đề xuất nào, hãy chia sẻ chúng bên dưới trong phần bình luận

Hoặc bạn có thể theo dõi tôi trên Medium, Twitter, Github và LinkedIn, ngay sau khi bạn nhấp vào trái tim màu xanh bên dưới ;-)

#‎StayCurious, #‎KeepOnHacking & #‎MakeItHappen

Tài nguyên bổ sung

  • vòng lặp while — MDN
  • phương thức lặp lại () — MDN
  • Toán tử bậc ba — MDN

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO


Làm thế nào để bạn làm cho một cái gì đó lặp lại trong javascript?
Sonya Moisset

🛡️ Làm công việc An ninh mạng. 🌟 Ngôi sao GitHub. 💻 Những người phụ nữ tuyệt vời trong không gian mạng/công nghệ. 👩‍🎤 Đại sứ GirlCode. 🥑 DevSecOps/Người ủng hộ bảo mật đám mây


Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Có phương pháp lặp lại trong JavaScript không?

repeat() Phương thức repeat() xây dựng và trả về một chuỗi mới chứa số bản sao được chỉ định của chuỗi mà nó được gọi, nối với nhau.

Làm cách nào để lặp lại điều gì đó với số lần nhất định trong JavaScript?

Vòng lặp “For” . Rất thuận tiện để thực thi một khối mã nhiều lần. Nó sử dụng một bộ đếm, giá trị của nó được khởi tạo đầu tiên và sau đó giá trị cuối cùng của nó được chỉ định. Bộ đếm được tăng thêm một giá trị cụ thể mỗi khi vòng lặp chạy.

Làm cách nào để lặp một chuỗi trong js?

Ba cách để lặp lại một chuỗi trong JavaScript .
sử dụng vòng lặp while
sử dụng đệ quy
sử dụng phương thức lặp lại ES6()

Chức năng lặp lại là gì?

Hàm REPEAT trả về một chuỗi ký tự bao gồm đối số thứ nhất được lặp lại số lần được chỉ định bởi đối số thứ hai . LẶP LẠI ( biểu thức1 , biểu thức2 )