2011-10-18 70 views
7

Cách nhận dạng mảng & đối tượng trong js mà typeof không có ích?Sự khác biệt giữa mảng và đối tượng trong js?

var arr = [], ob = {}; 

Như tất cả mọi thứ trong js là những đối tượng,

if(typeof arr == typeof ob) => returns true 

Tôi muốn có một nhà điều hành hoặc ... mà sẽ nói với tôi rằng biến là một mảng. Sau đó tôi có thể chỉ sử dụng các hàm mảng cho các đối tượng là mảng. Làm thế nào là có thể?

Trả lời

11
var arr = [], ob = {}; 

Như tất cả mọi thứ trong js là những đối tượng, thậm chí ** Mảng là một đối tượng nhưng một thể hiện của lớp Array

if(typeof arr == typeof ob) => returns true as Both are **Objects 

Vì vậy, làm thế nào sẽ giúp bạn xác định các đối tượng.

Đây là nơi điều hành instanceof có ích, để xác định xem nó một mảng bạn có thể đặt một thêm CDE kiểm tra:

if(arr instanceof Object && arr instanceof Array) => returns true 
if(ob instanceof Object && ob instanceof Array) => returns false 
+1

này sẽ không làm việc trong một môi trường 'đa window', tuy nhiên. – alex

+0

+1: đề cập đến: typeof so với instanceof – vietean

+0

@alex Oh i see. những gì sẽ là con đường ra cho nó? –

5

Bạn có thể sử dụng Array.isArray() phương pháp để kiểm tra xem một biến là mảng hay cách khác.

var myArray = [1,2,3,4,5]; 
console.log(Array.isArray(myArray)); 

đúng

Các vấn đề liên quan