检测对象的属性是否为对象
Detecting if a Property of an Object is an Object
我将使用JSON来字符串化对象属性的值,以便通过Google Apps脚本将其存储为Google日历上的标记。该值实际上是双嵌套Object
(请参见myObject
中的extraAttributes
)。
我有一个像下面这样构建的对象:
var myObject = {
"location": "somwehere",
"date": new Date(),
"numSomething": 20,
"extraAttributes": {"used": true, "interval": 60, "internals": {"timer": 10, "visible": false} }
}
我试着让它变得美观易读。。。无论如何:myObject实际上有20-40个属性,其中一些是嵌套的Objects
。所以问题来了:
是否有一种方法可以通知对象中属性的值是否是对象本身(额外的嵌套级别是否会成为此检测的问题?)?这背后的原因是,我不知道JSON.stringify
和JSON.parse
会如何影响其他数据(我已经在Object类型的一个特定值上测试了它,它运行得很好),而且我也不知道如果存储的属性达到20-40,这两个函数会对我的脚本产生多大的性能影响。
我宁愿做一个检查,看看这个值是否是Object,并仅字符串化(这也会效率低下吗?)。如果这会在未来引发重大问题,请随时向我讲授对象和嵌套;)
除函数和undefined
外,所有Javascript值都可以序列化为JSON。
要回答您的问题,请参阅typeof
操作员。
检查某个东西是否是对象而不是使用typeof
(在某些情况下可能会产生误导,例如typeof [] === 'object'
)的另一种方法是使用object构造函数:
var foo = { id: 1 };
var bar = 'string';
console.log(foo === Object(foo)) // true
console.log(bar === Object(bar)) // false
相关文章:
- 如何检查数组中的对象是否等于选项值
- 测试对象是否相等和/或对象是否有更多的关键点,但仍然与共同的关键点相等
- 确定javascript中的html表对象是否具有<colgroup>是否
- 验证对象是否为null Javascript/Angularjs
- 如何通过json对象选项卡中的Id来检查对象是否存在
- jQuery-检测选择对象是否添加或删除了选项
- 检查对象是否是mongo游标
- Three.js-如何检查对象是否在球体后面(不可见)
- 检查对象是否基于jquery对象
- 在JSON项上循环,无论JSON对象是否具有多个数组
- 递归Javascript对象是否会导致任何问题(内存泄漏)
- Javascript如何确定两个对象是否相同
- 如何检查文字对象是否在 Javascript 数组中
- 检查对象是否已被推入数组 Js
- 变量/对象是否按值传递,为什么我不能在 javascript 中使用变量更改对象的属性
- JavaScript 如何检查包含数组的对象是否为空
- 嵌套对象是否被视为良好做法
- 在node.js/ssocket.io中,如何判断对象是否是套接字的实例
- 是否有跨浏览器和跨框架的方法来检查对象是否是HTML元素
- 有没有办法检查一个对象是否存在并且在一行中有一个子对象