为了在递归遍历JSON对象时创建条件,我正在尝试找到一种清晰的方法来区分不同的对象类型。
考虑以下内容:
所有类型的对象都是没有更多信息的“对象”。
目前,我的使用情况仅需要检测ISODate对象,因此我利用ISODate对象具有resetTime函数来区分它们与其他对象,如下所示:
考虑以下内容:
var aJSON = {"foo" : 1, "bar" : 2};
var anArray = [1,2,3,4,5];
var aDate = new Date('2013-03-10T02:00:00Z');
var anISODate = user.timesTheyLoggedIn[0] // comes from MongoDB
console.log(typeof aJSON); // object
console.log(typeof anArray); // object
console.log(typeof aDate); // object
console.log(typeof anISODate); // object
所有类型的对象都是没有更多信息的“对象”。
目前,我的使用情况仅需要检测ISODate对象,因此我利用ISODate对象具有resetTime函数来区分它们与其他对象,如下所示:
if (typeof(val) === "object" && val.resetTime === undefined) { //do stuff...
但是必须有一种更干净、更好的方法来检测对象是什么类型,类似于 val.isArray()
的东西……
你会怎么做呢?
PS:“不同的对象类型”用引号括起来,因为在JS中实际上只有一种对象类型,对吧?