Câu trả lời:
Một thay thế thanh lịch và ngắn, là String.prototype.slice
phương pháp.
Chỉ bằng cách:
str.slice(-1);
Một chỉ mục bắt đầu phủ định cắt chuỗi từ length+index
, đến length
, là chỉ mục -1
, ký tự cuối cùng được trích xuất:
"abc".slice(-1); // "c";
slice()
phương pháp. - Chức năng của chúng tương tự nhau về mặt khái niệm (bản sao một phần) -------- (Chỉ trong trường hợp bạn đang đọc mã và xem .slice()
)
str.slice(-1)
thực sự có được ký tự cuối cùng của chuỗi (theo yêu cầu của OP), giống như khi bạn sử dụng str.charAt(str.length - 1)
, hãy thử : "abc".slice(-1)
. Tôi đã chỉ ra ở đây một cách sử dụng String.prototype.slice
với một chỉ số tiêu cực. str.slice(-n)
sẽ lấy các n
ký tự cuối cùng của chuỗi gốc làm giá trị chuỗi mới. Thông tin thêm: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/
Sử dụng charAt
:
Phương thức charAt () trả về ký tự tại chỉ mục đã chỉ định trong một chuỗi.
Bạn có thể sử dụng phương thức này kết hợp với thuộc length
tính của chuỗi để lấy ký tự cuối cùng trong chuỗi đó.
Ví dụ:
const myString = "linto.yahoo.com.";
const stringLength = myString.length; // this will be 16
console.log('lastChar: ', myString.charAt(stringLength - 1)); // this will be the string
str.charAt(str.length - 1)
Một số trình duyệt cho phép (dưới dạng tiện ích mở rộng không chuẩn), bạn rút ngắn phần này thành:
str[str.length - 1];
Bạn có thể đạt được điều này bằng nhiều cách khác nhau nhưng với hiệu suất khác nhau,
1. Sử dụng ký hiệu ngoặc:
var str = "Test";
var lastLetter = str[str.length - 1];
Nhưng không nên sử dụng dấu ngoặc. Kiểm tra lý do tại đây
2. charAt [chỉ mục]:
var lastLetter = str.charAt(str.length - 1)
Điều này có thể đọc và nhanh nhất trong số những người khác. Đó là cách được khuyến nghị nhất.
3. chuỗi con:
str.substring(str.length - 1);
4. lát:
str.slice(-1);
Nó nhanh hơn một chút so với chuỗi con.
Bạn có thể kiểm tra hiệu suất ở đây
Với ES6:
Bạn có thể dùng str.endsWith("t");
Nhưng nó không được hỗ trợ trong IE. Kiểm tra chi tiết hơn về kết thúc với đây
str.slice(-1);
endsWith
phù hợp ở đây, đó là một cái gì đó hoàn toàn khác nhau.
Một cách dễ dàng để làm điều đó là sử dụng cái này :)
var word = "waffle"
word.endsWith("e")
Bạn có thể nhận được char cuối cùng như thế này:
var lastChar=yourString.charAt(yourString.length-1);
var firstName = "Ada";
var lastLetterOfFirstName = firstName[firstName.length - 1];
Bạn có thể sử dụng phương pháp ES6 đơn giản này
const lastChar = (str) => str.split('').reverse().join(',').replace(',', '')[str.length === str.length + 1 ? 1 : 0];
// example
console.log(lastChar("linto.yahoo.com."));
Điều này sẽ làm việc trong mọi trình duyệt.