Cách xử lý từng chữ cái của văn bản (có điểm chuẩn)
//jsperf.com/str-for-in-of-foreach-map-2
for
Cổ điển và cho đến nay là một người có hiệu suất cao nhất. Bạn nên đi với cái này nếu bạn dự định sử dụng nó trong một thuật toán quan trọng hiệu suất hoặc nó đòi hỏi khả năng tương thích tối đa với các phiên bản trình duyệt. and by far the one with the most performance. You should go with this one if you are planning to use it in a performance critical algorithm, or that it requires the maximum compatibility with browser versions.
for (var i = 0; i < str.length; i++) { console.info(str[i]); }for...of
Đối với ... là ES6 mới cho Iterator. Được hỗ trợ bởi hầu hết các trình duyệt hiện đại. Nó hấp dẫn hơn về mặt trực quan và ít dễ bị gõ vào lỗi. Nếu bạn đang làm điều này trong một ứng dụng sản xuất, có lẽ bạn nên sử dụng một bộ chuyển đổi như Babel.ES6 for iterator. Supported by most modern browsers. It is visually more appealing and is less prone to typing mistakes. If you are going for this one in a production application, you should be probably using a transpiler like Babel.
let result = ''; for (let letter of str) { result += letter; }cho mỗi
Phương pháp tiếp cận chức năng. Airbnb được phê duyệt. Nhược điểm lớn nhất của việc thực hiện theo cách này là let result = ''; for (let letter of str) { result += letter; } 2, tạo ra một mảng mới để lưu trữ từng chữ cái riêng lẻ của chuỗi. approach. Airbnb approved. The biggest downside of doing it this way is the let result = ''; for (let letter of str) { result += letter; } 2, that creates a new array to store each individual letter of the string.
// ES6 version. let result = ''; str.split('').forEach(letter => { result += letter; });Tại sao? Điều này thực thi quy tắc bất biến của chúng tôi. Đối phó với các chức năng thuần túy mà các giá trị trả về dễ lý do hơn là các tác dụng phụ.
hoặc
var result = ''; str.split('').forEach(function(letter) { result += letter; });Sau đây là những người tôi không thích.
for...in
Không giống như ... OF, bạn nhận được chỉ mục thư thay vì chữ cái. Nó thực hiện khá tệ.
var result = ''; for (var letterIndex in str) { result += str[letterIndex]; }bản đồ
Phương pháp tiếp cận chức năng, đó là tốt. Tuy nhiên, bản đồ không có nghĩa là được sử dụng cho điều đó. Nó nên được sử dụng khi cần thay đổi các giá trị bên trong một mảng, đó không phải là trường hợp.
// ES6 version. var result = ''; str.split('').map(letter => { result += letter; });hoặc
let result = ''; str.split('').map(function(letter) { result += letter; }); hãy để văn bản = "Hello World"; Đặt chữ cái = text.charat (3.14); Hỗ trợ trình duyệtHãy tự mình thử »
Chỉ số không hợp lệ chuyển đổi thành 0:
// ES6 version. let result = ''; str.split('').forEach(letter => { result += letter; }); 8 là tính năng ECMAScript1 (ES1).
ES1 (JavaScript 1997) được hỗ trợ đầy đủ trong tất cả các trình duyệt:Trình duyệt Chrome
// ordinary for loop let str = "Buzz"; for (let i = 0; i < str.length; i++) { console.log(str[i]); } I EBờ rìa
Firefox
Example:
// for... in for (let i in str) { console.log(str[i]); }Cuộc đi săn
let result = ''; for (let letter of str) { result += letter; } 0cho ... của ...Một cách khác để lặp qua một chuỗi là sử dụng // ES6 version. let result = ''; str.split('').forEach(letter => { result += letter; }); 6. Biến // ES6 version. let result = ''; str.split('').forEach(letter => { result += letter; }); 7 nhận trực tiếp ký tự để bạn không phải sử dụng chỉ mục. Nếu mã của bạn không cần giá trị chỉ mục của mỗi ký tự, định dạng vòng lặp này thậm chí còn đơn giản hơn.
Example:
let result = ''; for (let letter of str) { result += letter; } 1Kết quả khớp với """
Không có kết quả phù hợp với """
Ví dụ
Nhận ký tự đầu tiên trong một chuỗi:first character in a string:
hãy để văn bản = "Hello World"; Đặt chữ cái = text.charat (0);
let letter = text.charAt(0);
Hãy tự mình thử »
Nhận ký tự thứ hai trong một chuỗi:second character in a string:
hãy để văn bản = "Hello World"; Đặt chữ cái = text.charat (1);
let letter = text.charAt(1);
Hãy tự mình thử »
Nhận ký tự cuối cùng trong một chuỗi:last character in a string:
hãy để văn bản = "Hello World"; Đặt chữ cái = text.charat (text.length-1);
let letter = text.charAt(text.length-1);
Hãy tự mình thử »
Thêm ví dụ dưới đây.
Định nghĩa và cách sử dụng
Phương thức // ES6 version. let result = ''; str.split('').forEach(letter => { result += letter; }); 8 trả về ký tự tại một chỉ mục được chỉ định (vị trí) trong một chuỗi.
Chỉ số của ký tự đầu tiên là 0, 1 thứ hai, ...
Cú pháp
Thông số
Tham số | Sự mô tả |
mục lục | Tùy chọn. Chỉ mục (vị trí) của ký tự.Default = 0. The index (position) of the character. Default = 0. |
Giá trị trả về
Loại hình | Sự mô tả |
mục lục | Tùy chọn. Chỉ mục (vị trí) của ký tự.Default = 0. Empty string ("") if the index is out of range. |
Giá trị trả về
Loại hình
Sợi dây
let letter = text.charAt(15);
Hãy tự mình thử »
Ký tự tại chỉ số được chỉ định. Chuỗi trống ("") Nếu chỉ mục nằm ngoài phạm vi.
Nhiều ví dụ hơn
let letter = text.charAt();
Hãy tự mình thử »
Chỉ số không hợp lệ chuyển đổi thành 0:
hãy để văn bản = "Hello World"; Đặt chữ cái = text.charat (3.14);
let letter = text.charAt(3.14);
Hãy tự mình thử »
Hỗ trợ trình duyệt
// ES6 version. let result = ''; str.split('').forEach(letter => { result += letter; }); 8 là tính năng ECMAScript1 (ES1).
ES1 (JavaScript 1997) được hỗ trợ đầy đủ trong tất cả các trình duyệt:
Trình duyệt Chrome | I E | Bờ rìa | Firefox | Cuộc đi săn | Opera |
Đúng | Đúng | Đúng | Đúng | Đúng | Đúng |