Array.isArray() là một phương thức để xác định liệu giá trị truyền vào có phải là một mảng kiểu Array.

Array.isArray([1, 2, 3]);  // true
Array.isArray({foo: 123}); // false
Array.isArray('foobar');   // false
Array.isArray(undefined);  // false

Cú pháp

Array.isArray(value)

Tham Số

value
Giá trị được kiểm tra.

Giá trị trả về

true nếu giá trị là kiểu mảng Array; false nếu không phải mảng.

Mô tả

Nếu giá trị là Array, trả về true, nếu không thì trả về false.

Xem bài viết “Determining with absolute accuracy whether or not a JavaScript object is an array” để có thêm chi tiết. Giả sử ta có một TypedArray instance, false sẽ luôn được trả về.

Ví dụ

// all following calls return true
Array.isArray([]);
Array.isArray([1]);
Array.isArray(new Array());
// Little known fact: Array.prototype itself is an array:
Array.isArray(Array.prototype); 

// all following calls return false
Array.isArray();
Array.isArray({});
Array.isArray(null);
Array.isArray(undefined);
Array.isArray(17);
Array.isArray('Array');
Array.isArray(true);
Array.isArray(false);
Array.isArray({ __proto__: Array.prototype });

instanceof vs isArray

Để kiểm tra kiểu Array, nên dùng Array.isArray hơn là instanceof bởi vì nó vẫn ra đúng khi giá trị kiểm tra được truyền qua iframes.

var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
xArray = window.frames[window.frames.length-1].Array;
var arr = new xArray(1,2,3); // [1,2,3]

// Correctly checking for Array
Array.isArray(arr);  // true
// Considered harmful, because doesn't work through iframes
arr instanceof Array; // false

Polyfill

Chạy mã dưới đây đầu tiên trước các mã khác sẽ tạo Array.isArray() nếu nó không có sẵn.

if (!Array.isArray) {
  Array.isArray = function(arg) {
    return Object.prototype.toString.call(arg) === '[object Array]';
  };
}

Đặc tả

Đặc tả Trạng thái Ghi chú
ECMAScript 5.1 (ECMA-262)
The definition of 'Array.isArray' in that specification.
Standard Định nghĩa lần đầu. Được hiện thực trong JavaScript 1.8.5.
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Array.isArray' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Array.isArray' in that specification.
Draft  

Trình duyệt hỗ trợ

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Basic supportChrome Full support 5Edge Full support YesFirefox Full support 4IE Full support 9Opera Full support 10.5Safari Full support 5WebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

Xem thêm

Document Tags and Contributors

Những người đóng góp cho trang này: quytran, trongthanh, NguyenTungs, atum201
Cập nhật lần cuối bởi: quytran,