Tôi đã cố gắng xâu chuỗi một đối tượng giống như mảng được khai báo là đối tượng mảng và nhận thấy JSON.stringify không xử lý chính xác đối tượng giống mảng khi nó được định nghĩa là mảng đối tượng.Đối tượng mảng JavaScript vs mảng giống như đối tượng - Làm rõ
Xem dưới đây cho rõ ràng hơn, ->jsFiddle
var simpleArray = []; //note that it is defined as Array Object
alert(typeof simpleArray); // returns object -> Array Object
simpleArray ['test1'] = 'test 1';
simpleArray ['test2'] = 'test 2';
alert(JSON.stringify(simpleArray)); //returns []
Nó hoạt động tốt và trở về tôi {"test1":"test 1","test2":"test 2"}
khi tôi thay đổi
var simpleArray = [];
-var simpleArray = {};
.
Ai đó có thể làm sáng tỏ hoặc tham khảo một số nơi tôi có thể đọc thêm?
Edit:
Câu hỏi: Khi typeof simpleArray = []
và simpleArray = {}
trở đối tượng, tại sao JSON.stringify đã không thể trở {"test1":"test 1","test2":"test 2"}
trong cả hai trường hợp?
Tôi hiểu rằng một phần, những gì tôi muốn biết là tại sao JSON.stringify không thể xử lý khi được khai báo là []. –
Cảm ơn bạn !. Tôi đang tìm kiếm instanceof. Tôi đã cố gắng sử dụng typeof đã trở về đối tượng trong cả hai trường hợp. –
Vì ES 5 cũng có 'Array.isArray (...)' (15.4.3.2) mà ngược lại là khung an toàn. Nó có thể được mô phỏng. – PointedEars