我想查看一个对象并将其每个现有属性分配给一个变量。
有 4 个可能的属性。有些对象有全部 4 个。有些可能只有两个。
如何检查特定属性是否存在?对于数组,但对于对象,是否有等效的indexOf()?
最佳答案
使用in
关键字:
对象中的“key”
返回true
或false
,具体取决于对象或其原型链中的任何内容是否具有该属性。
您还可以使用object.hasOwnProperty("key")
,只有当对象将 key
作为其自身属性而不是其原型(prototype)时,该值才会为 true
。示例:
var object = {};
"toString" in object; // true
object.hasOwnProperty("toString"); // false
请注意(根据 @dandavis 的评论),如果 object
有一个名为 hasOwnProperty
的自定义属性,则会受到阻碍;要解决此问题,请使用 hasOwnProperty.call(object, "key")
。示例:
var a = {hasOwnProperty: Boolean};
a.hasOwnProperty('name'); // true
hasOwnProperty.call(a, 'name'); // false
关于javascript - indexOf 但对于对象呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39008719/