tôi đang học Javascript và không hiểu lý do tại sao indexOf dưới đây trả về -1:Tại sao IndexOf trở lại -1?
var string = "The quick brown fox jumps over the lazy dog";
console.log (string.indexOf("good"));
tôi đang học Javascript và không hiểu lý do tại sao indexOf dưới đây trả về -1:Tại sao IndexOf trở lại -1?
var string = "The quick brown fox jumps over the lazy dog";
console.log (string.indexOf("good"));
-1 có nghĩa là "không tìm thấy kết quả phù hợp".
Lý do trả về -1 thay vì "sai" là kim ở đầu chuỗi sẽ ở vị trí 0, tương đương với false trong Javascript. Vì vậy, trở về -1 đảm bảo rằng bạn biết không thực sự là một trận đấu.
-1 có nghĩa là không phù hợp được tìm thấy. "tốt" không có trong câu đó. Đây là documentedbehaviour.
Phương thức
indexOf()
trả về chỉ mục đầu tiên có thể tìm thấy phần tử đã cho trong mảng hoặc-1
nếu không có.
Tìm kiếm không bao giờ tìm thấy nội dung tìm kiếm ("tốt" không có trong câu) và -1 là giá trị trả về mặc định.
Do mảng dựa trên 0, trả về 0 có nghĩa là bắt đầu từ ký tự đầu tiên được khớp; 1, ký tự thứ hai, v.v. Điều này có nghĩa là bất cứ điều gì 0 và lên sẽ là một phản ứng đúng hoặc "tìm thấy". Để giữ mọi thứ trong danh mục số nguyên, -1 biểu thị không tìm thấy kết quả phù hợp.
Có một lý do khác để indexOf trả về -1 khi không tìm thấy kết quả phù hợp. Hãy xem xét các đoạn mã sau:
if (~str.indexOf(pattern)){
console.log('found')
}else{
console.log('not found')
}
Bởi vì ~ (-1) = 0 nên thực tế là indexOf trở về -1 làm cho nó dễ dàng hơn để viết if ... else sử dụng ~.
Đó là những gì tôi đang tìm kiếm. Cảm ơn. –