Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript indexOf,但用于对象?_Javascript_Arrays_Object_Indexof - Fatal编程技术网

Javascript indexOf,但用于对象?

Javascript indexOf,但用于对象?,javascript,arrays,object,indexof,Javascript,Arrays,Object,Indexof,我想查看一个对象,并将它的每个现有属性分配给一个变量 有4种可能的属性。有些对象具有全部4个。有些可能只有两个 如何检查特定属性是否存在?数组是否有indexOf()的等价物,而对象是否有indexOf()的等价物?使用关键字: 对象中的“键” 它返回true或false,具体取决于对象或其原型链中的任何对象是否具有该属性 您还可以使用,如果对象本身具有key属性,而不是其原型,则该属性将仅为true。例如: var object = {}; "toString" in object; // t

我想查看一个对象,并将它的每个现有属性分配给一个变量

有4种可能的属性。有些对象具有全部4个。有些可能只有两个

如何检查特定属性是否存在?数组是否有indexOf()的等价物,而对象是否有indexOf()的等价物?

使用关键字:

对象中的“键”

它返回
true
false
,具体取决于对象或其原型链中的任何对象是否具有该属性

您还可以使用,如果对象本身具有
key
属性,而不是其原型,则该属性将仅为
true
。例如:

var object = {};
"toString" in object; // true
object.hasOwnProperty("toString"); // false
var a = {hasOwnProperty: Boolean};
a.hasOwnProperty('name'); // true
hasOwnProperty.call(a, 'name'); // false
请注意(根据@dandavis的评论),如果
对象
有一个名为
hasOwnProperty
的自定义属性,这将受到阻碍;要解决此问题,请使用
hasOwnProperty.call(对象,“键”)
。例如:

var object = {};
"toString" in object; // true
object.hasOwnProperty("toString"); // false
var a = {hasOwnProperty: Boolean};
a.hasOwnProperty('name'); // true
hasOwnProperty.call(a, 'name'); // false
使用关键字:

对象中的“键”

它返回
true
false
,具体取决于对象或其原型链中的任何对象是否具有该属性

您还可以使用,如果对象本身具有
key
属性,而不是其原型,则该属性将仅为
true
。例如:

var object = {};
"toString" in object; // true
object.hasOwnProperty("toString"); // false
var a = {hasOwnProperty: Boolean};
a.hasOwnProperty('name'); // true
hasOwnProperty.call(a, 'name'); // false
请注意(根据@dandavis的评论),如果
对象
有一个名为
hasOwnProperty
的自定义属性,这将受到阻碍;要解决此问题,请使用
hasOwnProperty.call(对象,“键”)
。例如:

var object = {};
"toString" in object; // true
object.hasOwnProperty("toString"); // false
var a = {hasOwnProperty: Boolean};
a.hasOwnProperty('name'); // true
hasOwnProperty.call(a, 'name'); // false
var obj={
傅:1,,
酒吧:2,
巴兹:3
}
Object.keys(obj).forEach(函数(key){
窗口[键]=对象[键]
})
console.log(foo、bar、baz)
var obj={
傅:1,,
酒吧:2,
巴兹:3
}
Object.keys(obj).forEach(函数(key){
窗口[键]=对象[键]
})

log(foo、bar、baz)
如果您只对直接在对象上设置的属性感兴趣(无法通过原型链访问),那么如果对象具有指定的属性,则将提供布尔值
true

例如:
testObject.hasOwnProperty('propertyToCheckFor')
将返回
true
如果
testObject.propertyToCheckFor
存在,否则将返回
false

有关更详细的示例,请参见以下代码:

var obj1={
a:1
};
变量obj2={
答:1,,
b:2
};
变量obj3={
b:2,
c:3
};
变量obj4={
答:1,,
b:2,
c:3
};
//为方便起见
document.write(“”+JSON.stringify({
obj1:{
hasA:obj1.hasOwnProperty('a'),
hasB:obj1.hasOwnProperty('b'),
hasC:obj1.hasOwnProperty('c')
},
obj2:{
hasA:obj2.hasOwnProperty('a'),
hasB:obj2.hasOwnProperty('b'),
hasC:obj2.hasOwnProperty('c')
},
obj3:{
hasA:obj3.hasOwnProperty('a'),
hasB:obj3.hasOwnProperty('b'),
hasC:obj3.hasOwnProperty('c')
},
obj4:{
hasA:obj4.hasOwnProperty('a'),
hasB:obj4.hasOwnProperty('b'),
hasC:obj4.hasOwnProperty('c')
}

},空,2)+''如果您只对直接在对象上设置的属性感兴趣(无法通过原型链访问),那么如果对象具有指定的属性,则将提供布尔值
true

例如:
testObject.hasOwnProperty('propertyToCheckFor')
将返回
true
如果
testObject.propertyToCheckFor
存在,否则将返回
false

有关更详细的示例,请参见以下代码:

var obj1={
a:1
};
变量obj2={
答:1,,
b:2
};
变量obj3={
b:2,
c:3
};
变量obj4={
答:1,,
b:2,
c:3
};
//为方便起见
document.write(“”+JSON.stringify({
obj1:{
hasA:obj1.hasOwnProperty('a'),
hasB:obj1.hasOwnProperty('b'),
hasC:obj1.hasOwnProperty('c')
},
obj2:{
hasA:obj2.hasOwnProperty('a'),
hasB:obj2.hasOwnProperty('b'),
hasC:obj2.hasOwnProperty('c')
},
obj3:{
hasA:obj3.hasOwnProperty('a'),
hasB:obj3.hasOwnProperty('b'),
hasC:obj3.hasOwnProperty('c')
},
obj4:{
hasA:obj4.hasOwnProperty('a'),
hasB:obj4.hasOwnProperty('b'),
hasC:obj4.hasOwnProperty('c')
}

},空,2)+''您可以使用分解分配。如果未定义值,变量将设置为
未定义
。您还可以检查变量是否在解构后定义,然后通过引用删除变量


您可以使用分解分配。如果未定义值,变量将设置为
未定义
。您还可以检查变量是否在解构后定义,然后通过引用删除变量


很难想象你的代码仅仅是纯文本。想在这里透露相关的源代码吗?这是为了更好地帮助您。您是否尝试过使用
hasOwnProperty
或使用
object.keys
将对象转换为数组?如果属性不能为false(例如它们都是子对象),则duck键入可读且快速:
if(obj.key1);警报(对象键1.名称)
false
或,包括
0
和其他常见values@qxz:是的,这就是我的意思,好的呼叫很难想象你的代码是纯文本的。想在这里透露相关的源代码吗?这是为了更好地帮助您。您是否尝试过使用
hasOwnProperty
或使用
object.keys
将对象转换为数组?如果属性不能为false(例如它们都是子对象),则duck键入可读且快速:
if(obj.key1);警报(对象键1.名称)
false
或,包括
0
和其他常见values@qxz:是的,这就是我的意思,很好的callObject。keys+forEach工作得很好,但是对于大型对象,它比过滤的for-in慢得多……不要使用大型对象;)key+forEach工作得很好,但是对于大对象,它比过滤的for慢得多……不要使用大对象;)<代码>{hasOwnProperty:Boolean}
?@dandavis什么?如果有人