Rate this post

indexOf() trong javascript là một method của đối tượng String và Array, nó dùng để tìm vị trí của một phần tử hoặc chuỗi trong một mảng hoặc chuỗi. Nếu phần tử hoặc chuỗi đó không tồn tại trong mảng hoặc chuỗi, nó sẽ trả về giá trị -1.

Các bài viết liên quan:

Ví dụ:

let fruits = ["Banana", "Orange", "Apple", "Mango"];

let a = fruits.indexOf("Apple");

console.log(a) // output 2

Trong ví dụ trên, hàm indexOf() sẽ tìm vị trí của chuỗi “Apple” trong mảng “fruits”, và trả về 2.

Vì sao nên sử dụng indexOf() ?

Sử dụng indexOf() trong javascript giúp cho việc tìm kiếm một giá trị trong một mảng hoặc chuỗi trở nên dễ dàng hơn. Nó có thể giúp bạn xác định xem một giá trị có tồn tại trong mảng hay chuỗi hay không và nếu có, nó sẽ trả về vị trí của giá trị đó.

Ví dụ, nếu bạn muốn kiểm tra xem một tên có tồn tại trong danh sách đã có hoặc không, bạn có thể sử dụng indexOf() để xác định tên đó có trong danh sách hay không. Nó cũng có thể giúp bạn xóa hoặc thay thế một phần tử trong mảng một cách dễ dàng.

Các method như indexOf(), findIndex, includes, … có thể giúp cho việc tìm kiếm trong mảng hoặc chuỗi trở nên dễ dàng hơn và tăng hiệu suất của chương trình.

Sử dụng indexOf() trong javascript như thế nào ?

Sử dụng indexOf() trong javascript rất đơn giản, chúng ta chỉ cần gọi method này trên đối tượng mảng hoặc chuỗi và truyền giá trị cần tìm vào để kiểm tra. Khi sử dụng với mảng, nó sẽ tìm vị trí của phần tử trong mảng. Khi sử dụng với chuỗi, nó sẽ tìm vị trí của chuỗi con trong chuỗi gốc.

Ví dụ:

let fruits = ["Banana", "Orange", "Apple", "Mango"];

let a = fruits.indexOf("Apple");

console.log(a) // output 2

let sentence = "The quick brown fox";

let b = sentence.indexOf("fox");

console.log(b) // output 16

Trong ví dụ trên, hàm indexOf() được gọi trên mảng và chuỗi, và trả về vị trí của phần tử hoặc chuỗi con trong mảng hoặc chuỗi gốc.

Chú ý: indexOf() method chỉ tìm kiếm theo vị trí đầu tiên của phần tử hoặc chuỗi. Nếu muốn tìm tất cả các vị trí của phần tử hoặc chuỗi, bạn có thể sử dụng vòng lặp và gọi indexOf() trong vòng lặp.

Khi nào nên sử dụng indexOf() ?

Khi bạn muốn tìm kiếm vị trí của một phần tử trong một mảng hoặc chuỗi, bạn có thể sử dụng hàm indexOf() trong javascript. Hàm này sẽ trả về vị trí của phần tử đầu tiên trong mảng hoặc chuỗi mà khớp với giá trị mà bạn truyền vào. Nếu không tìm thấy phần tử đó, hàm sẽ trả về giá trị -1. Ví dụ, muốn tìm vị trí của số 7 trong mảng [1,2,3,4,5,6,7,8,9], bạn có thể sử dụng indexOf(7) và nó sẽ trả về giá trị 6 (vị trí của 7 trong mảng).

Một số sai lầm thường mắc phải khi sử dụng indexOf() trong javascript bao gồm:

  • Chưa chuyển kiểu dữ liệu: Khi so sánh hai giá trị khác kiểu, chúng ta cần phải chuyển đổi chúng sang cùng một kiểu dữ liệu để so sánh. Nếu không, kết quả của hàm indexOf() có thể không chính xác.
  • Viết sai tên hàm: Viết sai tên hàm sẽ dẫn đến lỗi ReferenceError.
  • Quên truyền tham số cho hàm: nếu quên truyền tham số cho hàm, hàm sẽ trả về -1 hoặc lỗi TypeError.
  • Chỉ sử dụng hàm indexOf() với chuỗi, nếu sử dụng với mảng hoặc đối tượng có thể sẽ bị lỗi.

Ví dụ cụ thể về các trường hợp sử dụng indexOf() trong javascript.

Một vài ví dụ thường gặp khi sử dụng indexOf() trong JavaScript là:

  1. Tìm vị trí xuất hiện đầu tiên của một chuỗi con trong một chuỗi:
let sentence = "The quick brown fox jumps over the lazy dog.";

let word = "fox";

let index = sentence.indexOf(word);

console.log(index); // Output: 16

  1. Kiểm tra xem một giá trị có trong mảng hay không:
let colors = ["red", "green", "blue"];

let colorToCheck = "green";

let index = colors.indexOf(colorToCheck);

if(index !== -1){

    console.log(colorToCheck + " is present in the array.");

} else {

    console.log(colorToCheck + " is not present in the array.");

}

  1. Tìm vị trí xuất hiện cuối cùng của một chuỗi con trong một chuỗi:
let sentence = "The quick brown fox jumps over the lazy fox.";

let word = "fox";

let index = sentence.lastIndexOf(word);

console.log(index); // Output: 35

  1. Tìm kiếm trong một mảng theo điều kiện và lấy vị trí:
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9];

let numberToFind = 5;

let index = numbers.findIndex(function(element) {

    return element === numberToFind;

});

console.log(index);  // Output: 4

  1. Tìm kiếm vị trí của tất cả các phần tử trong mảng:
let array = [1, 2, 3, 4, 5, 3, 6, 3];

let result = [];

let search = 3;

let i = array.indexOf(search);

while (i != -1) {

  result.push(i);

  i = array.indexOf(search, i + 1);

}

console.log(result); // Output: [2, 5, 7]

  1. Tìm kiếm vị trí của một chuỗi con trong mảng các chuỗi:
let array = ["abc", "def", "ghi", "jkl"];

let search = "de";

let result = array.map((str, index) => {

  if (str.indexOf(search) !== -1) {

    return index;

  }

}).filter(i => i !== undefined);

console.log(result); // Output: [1]

  1. Tìm kiếm vị trí của phần tử trong một mảng đa chiều:
let array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];

let search = 6;

let result = [];

array.forEach((subArray, i) => {

  let j = subArray.indexOf(search);

  if (j !== -1) {

    result.push([i, j]);

  }

});

console.log(result); // Output: [[1, 2]]

Chúng ta có thể sử dụng indexOf() để tìm kiếm một phần tử trong mảng, chuỗi hoặc mảng đa chiều với các cấu trúc logic và một số ví dụ nâng cao khác.

Kết luận

IndexOf() là một hàm cần thiết trong Javascript để tìm kiếm vị trí đầu tiên của một chuỗi con trong một chuỗi cha. Nó rất hữu ích trong việc xử lý dữ liệu và xác định vị trí của các phần tử trong một mảng. 

Tuy nhiên, bạn cần chú ý đến việc sử dụng indexOf() trong một mảng có giá trị null hoặc undefined, vì nó có thể gây ra lỗi.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now