我的代码就是这样:
var cem = { "name": "cem topkaya" };
f_PropertyBul(cem);
function f_PropertyBul(obj) {
for (var prop in obj) {
document.writeln(obj + " prop: " + prop + " propertyIsEnumerable:" + obj.propertyIsEnumerable(prop) + "<br/>");
if (obj.propertyIsEnumerable(prop)) {
f_PropertyBul(obj[prop]);
}
}
}
我知道有很多问题和答案,但我不知道为什么我得到这个结果:
[object Object] prop: isim enumaret: true
cem topkaya prop: 0 enumaret: true
c prop: 0 propertyIsEnumerable: true
c prop: 0 propertyIsEnumerable: true
c prop: 0 propertyIsEnumerable: true
c prop: 0 propertyIsEnumerable: true
c prop: 0 propertyIsEnumerable: true
c prop: 0 propertyIsEnumerable: true
c prop: 0 propertyIsEnumerable: true
c prop: 0 propertyIsEnumerable: true
c prop: 0 propertyIsEnumerable: true
c prop: 0 propertyIsEnumerable: true
c prop: 0 propertyIsEnumerable: true
c prop: 0 propertyIsEnumerable: true
.
..
....
最后,我以字符串形式到达最后一个属性。但它仍然说它有财产可以真实。
我只想发送一个对象并搜索属性名称及其值。当它发现我只想破解搜索并返回我的JSON对象的一个属性。
答案 0 :(得分:1)
字符串是可枚举的。例如:
var str = "string"
for (var c in str) {
console.log(str[c]);
}
返回:
s
t
r
i
n
g
此方法可以确定对象中的指定属性是否可以由for ... in循环
枚举
如果要排除字符串,请在if语句中添加typeof prop !== "string"
的检查。