Array.prototype.includes()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2016.
Phương thức includes() của các đối tượng Array kiểm tra xem mảng có chứa một giá trị nhất định trong các phần tử của nó hay không, trả về true hoặc false tùy theo kết quả.
Try it
const array = [1, 2, 3];
console.log(array.includes(2));
// Expected output: true
const pets = ["cat", "dog", "bat"];
console.log(pets.includes("cat"));
// Expected output: true
console.log(pets.includes("at"));
// Expected output: false
Cú pháp
includes(searchElement)
includes(searchElement, fromIndex)
Tham số
searchElement-
Giá trị cần tìm kiếm.
fromIndexOptional-
Chỉ mục (dựa trên 0) để bắt đầu tìm kiếm, được chuyển đổi thành số nguyên.
- Chỉ mục âm đếm ngược từ cuối mảng — nếu
-array.length <= fromIndex < 0, sẽ dùngfromIndex + array.length. Tuy nhiên, mảng vẫn được tìm kiếm từ đầu đến cuối trong trường hợp này. - Nếu
fromIndex < -array.lengthhoặcfromIndexbị bỏ qua, sẽ dùng0, khiến toàn bộ mảng được tìm kiếm. - Nếu
fromIndex >= array.length, mảng sẽ không được tìm kiếm và trả vềfalse.
- Chỉ mục âm đếm ngược từ cuối mảng — nếu
Giá trị trả về
Một giá trị boolean là true nếu giá trị searchElement được tìm thấy trong mảng (hoặc phần mảng được chỉ định bởi chỉ mục fromIndex, nếu được chỉ định).
Mô tả
Phương thức includes() so sánh searchElement với các phần tử của mảng bằng thuật toán SameValueZero. Các giá trị bằng không đều được coi là bằng nhau, bất kể dấu. (Tức là -0 bằng 0), nhưng false không được coi là giống với 0. NaN có thể được tìm kiếm chính xác.
Khi dùng trên mảng thưa, phương thức includes() lặp qua các ô trống như thể chúng có giá trị undefined.
Phương thức includes() là phương thức tổng quát. Nó chỉ yêu cầu giá trị this có thuộc tính length và các thuộc tính có khóa là số nguyên.
Ví dụ
>Sử dụng includes()
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, 3].includes(3, 3); // false
[1, 2, 3].includes(3, -1); // true
[1, 2, NaN].includes(NaN); // true
["1", "2", "3"].includes(3); // false
fromIndex lớn hơn hoặc bằng độ dài mảng
Nếu fromIndex lớn hơn hoặc bằng độ dài mảng, sẽ trả về false. Mảng sẽ không được tìm kiếm.
const arr = ["a", "b", "c"];
arr.includes("c", 3); // false
arr.includes("c", 100); // false
Chỉ mục tính toán nhỏ hơn 0
Nếu fromIndex âm, chỉ mục tính toán sẽ được dùng làm vị trí trong mảng để bắt đầu tìm kiếm searchElement. Nếu chỉ mục tính toán nhỏ hơn hoặc bằng 0, toàn bộ mảng sẽ được tìm kiếm.
// array length is 3
// fromIndex is -100
// computed index is 3 + (-100) = -97
const arr = ["a", "b", "c"];
arr.includes("a", -100); // true
arr.includes("b", -100); // true
arr.includes("c", -100); // true
arr.includes("a", -2); // false
Sử dụng includes() trên mảng thưa
Bạn có thể tìm kiếm undefined trong mảng thưa và nhận được true.
console.log([1, , 3].includes(undefined)); // true
Gọi includes() trên đối tượng không phải mảng
Phương thức includes() đọc thuộc tính length của this và sau đó truy cập từng thuộc tính có khóa là số nguyên không âm nhỏ hơn length.
const arrayLike = {
length: 3,
0: 2,
1: 3,
2: 4,
3: 1, // ignored by includes() since length is 3
};
console.log(Array.prototype.includes.call(arrayLike, 2));
// true
console.log(Array.prototype.includes.call(arrayLike, 1));
// false
Thông số kỹ thuật
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-array.prototype.includes> |