Tìm phần tử trong mảng JavaScript (indexOf,lastIndexOf) | Laptrinhcanban.com

Tìm phần tử trong mảng JavaScript (indexOf,lastIndexOf)

Hướng dẫn cách tìm phần tử trong mảng JavaScript. Bạn sẽ học được sử dụng các phương thức indexOf và lastIndexOf để tìm phần tử cũng như kiểm tra phần tử có trong mảng JavaScript sau bài học này.

Chúng ta có 2 phương pháp tìm phần tử trong mảng JavaScript như sau:

  • Phương thức indexOf: Tìm phần tử từ đầu mảng JavaScript
  • Phương thức lastIndexOf: Tìm phần tử từ cuối mảng JavaScript

Chúng ta có thể ứng dụng 2 phương pháp này để kiểm tra phần tử có trong mảng JavaScript.

Tìm phần tử từ đầu mảng JavaScript

Phương thức indexOf trong JavaScript

Phương thức indexOf là phương thức thành viên trong Array Object, có tác dụng tìm kiếm một phần tử giống với giá trị được chỉ định từ đầu đến cuối một mảng trong JavaScript.

Chúng ta sử dụng indexOf để tìm phần tử trong mảng JavaScript với 2 kiểu cú pháp sau đây:

arr.indexOf(value);
arr.indexOf(value, start);

Trong đó arr là mảng ban đầu, value là giá trị cần tìm từ đầu mảng đó, và start là index của vị trí bắt đầu tìm kiếm trong mảng.

Phương thức indexOf sẽ trả về index của phần tử đầu tiên được tìm thấy giống với giá trị chỉ định từ đầu mảng, và nếu không có phần tử nào giống với giá trị đó, giá trị -1 sẽ được trả về.

Lưu ý là phương pháp so sánh sử dụng trong indexOf là so sánh nghiêm ngặt sử dụng tới toán tử ===, và nếu có nhiều phần tử giống với giá trị chỉ định thì chỉ có index của phần tử đầu tiên tìm thấy từ đầu mảng được trả về mà thôi.

Tìm phần tử từ đầu mảng JavaScript bằng indexOf

Chúng ta tìm phần tử từ đầu mảng JavaScript bằng indexOf như ví dụ sau đây:

let week = ['Mon', 'Sat', 'San', 'Sat', 'Fri'];

let indexSat = week.indexOf('Sat');
console.log(indexSat);
// 1

let indexTue = week.indexOf('Tue');
console.log(indexTue);
// -1

Ở ví dụ đầu tiên, mặc dù có 2 phần tử là week[1] và week[3] đều có giá trị bằng ‘Sat’, tuy nhiên chỉ có index của phần tử đầu tiên được tìm thấy từ đầu mảng là week[1] được trả về mà thôi.

Còn ở ví dụ 2, do không tồn tại giá trị ‘Tue’ trong mảng, nên giá trị -1 đã được trả về.

Tìm phần tử từ vị trí chỉ định đến cuối mảng JavaScript

Khi sử dụng phương thức indexOf để tìm kiếm một phần tử từ đầu mảng, nếu chúng ta chỉ định thêm đối số start thì vị trí tìm kiếm sẽ chuyển thành từ start cho tới cuối mảng.

Ví dụ cũng với mảng ở trên, chúng ta sẽ tiến hành tìm kiếm từ vị trí index bằng 2 tới cuối mảng như sau:

let week = ['Mon', 'Sat', 'San', 'Sat', 'Fri'];

let indexSat = week.indexOf('Sat', 2);
console.log(indexSat);
// 3

Do đã chỉ định start bằng 2, nên giá trị ‘Sat’ sẽ được tìm kiếm từ vị trí week[2] tới week[4] và trả về kết quả tại week[3].

Tìm phần tử từ cuối mảng JavaScript

Phương thức lastIndexOf trong JavaScript

Phương thức lastIndexOf là phương thức thành viên trong Array Object, có tác dụng tìm kiếm một phần tử giống với giá trị được chỉ định từ cuối lên đầu một mảng trong JavaScript.

Chúng ta sử dụng lastIndexOf để tìm phần tử trong mảng JavaScript với 2 kiểu cú pháp sau đây:

arr.lastIndexOf(value);
arr.lastIndexOf(value, start);

Trong đó arr là mảng ban đầu, value là giá trị cần tìm từ cuối mảng đó, và start là index của vị trí bắt đầu tìm kiếm trong mảng.

Phương thức lastIndexOf sẽ trả về index của phần tử đầu tiên được tìm thấy giống với giá trị chỉ định từ cuối mảng lên đầu mảng, và nếu không có phần tử nào giống với giá trị đó, giá trị -1 sẽ được trả về.

Lưu ý là phương pháp so sánh sử dụng trong lastIndexOf là so sánh nghiêm ngặt sử dụng tới toán tử ===, và nếu có nhiều phần tử giống với giá trị chỉ định thì chỉ có index của phần tử đầu tiên tìm thấy từ cuối mảng được trả về mà thôi.

Tìm phần tử từ cuối mảng JavaScript bằng lastIndexOf

Chúng ta tìm phần tử từ cuối mảng JavaScript bằng lastIndexOf như ví dụ sau đây:

let week = ['Mon', 'Sat', 'San', 'Sat', 'Fri'];

let indexSat = week.lastIndexOf('Sat');
console.log(indexSat);
// 3

let indexTue = week.lastIndexOf('Tue');
console.log(indexTue);
// -1

Ở ví dụ đầu tiên, mặc dù có 2 phần tử là week[1] và week[3] đều có giá trị bằng ‘Sat’, tuy nhiên chỉ có index của phần tử đầu tiên được tìm thấy từ cuối mảng là week[3] được trả về mà thôi.

Còn ở ví dụ 2, do không tồn tại giá trị ‘Tue’ trong mảng, nên giá trị -1 đã được trả về.

Tìm phần tử từ vị trí chỉ định lên đầu mảng JavaScript

Khi sử dụng phương thức lastIndexOf để tìm kiếm một phần tử từ cuối mảng, nếu chúng ta chỉ định thêm đối số start thì vị trí tìm kiếm sẽ chuyển thành từ start lên ngược tới đầu mảng.

Ví dụ cũng với mảng ở trên, chúng ta sẽ tiến hành tìm kiếm từ vị trí index bằng 2 tới đầu mảng như sau:

let week = ['Mon', 'Sat', 'San', 'Sat', 'Fri'];

let indexSat = week.lastIndexOf('Sat', 2);
console.log(indexSat);
// 1

Do đã chỉ định start bằng 2, nên giá trị ‘Sat’ sẽ được tìm kiếm từ vị trí week[2] tới week[0] và trả về kết quả tại week[1] như trên.

Kiểm tra phần tử có trong mảng JavaScript

Khi tìm kiếm phần tử trong mảng JavaScript bằng phương thức indexOf hoặc lastIndexOf, nếu không tìm thấy phần tử đó trong mảng thì kết quả -1 được trả về.

Ứng dụng điều này, chúng ta có thể tiến hành kiểm tra phần tử có trong mảng JavaScript theo 2 cách như sau:

Kiểm tra phần tử có trong mảng JavaScript bằng indexOf

Nếu kết quả tìm kiếm phần tử trong mảng JavaScript bằng indexOf bằng -1, điều đó có nghĩa là phần tử chỉ định không tồn tại trong mảng.

Ví dụ:

function checkelement(ele, week){
let indexSat = week.indexOf(ele);
if (indexSat == -1) console.log(ele + " không tồn tại trong mảng");
else console.log(ele + " có trong mảng");
}


let week = ['Mon', 'Sat', 'San', 'Sat', 'Fri'];

checkelement('Tue', week)
// Tue không tồn tại trong mảng

checkelement('Sat', week)
// Sat có trong mảng

Kiểm tra phần tử có trong mảng JavaScript bằng lastIndexOf

Một cách tương tự, nếu kết quả tìm kiếm phần tử trong mảng JavaScript bằng IndexOf bằng -1, điều đó có nghĩa là phần tử chỉ định không tồn tại trong mảng.

Ví dụ:

function checkelement(ele, week){
let indexSat = week.lastIndexOf(ele);
if (indexSat == -1) console.log(ele + " không tồn tại trong mảng");
else console.log(ele + " có trong mảng");
}


let week = ['Mon', 'Sat', 'San', 'Sat', 'Fri'];

checkelement('Tue', week)
// Tue không tồn tại trong mảng

checkelement('Sat', week)
// Sat có trong mảng

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách tìm phần tử trong mảng JavaScript rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về JavaScript trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.