Поиск под-свойств объекта javascript - PullRequest
0 голосов
/ 29 июля 2010

Мой код такой:

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
.
..
....

В конце я достигаю последнего свойства в виде строки.Но он по-прежнему говорит, что у него propertyIsEnumareble true.

Я просто хочу отправить объект и найти имя свойства и его значение.когда он обнаружился, я просто хочу прервать поиск и вернуть обратно одно свойство моего объекта JSON.

1 Ответ

1 голос
/ 29 июля 2010

Строки перечислимы. Например:

var str = "string"
for (var c in str) {
   console.log(str[c]);
}

Возвращает:

s
t
r
i
n
g

https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Object/propertyIsEnumerable

Этот метод может определить, может ли указанное свойство в объекте быть перечислено циклом for ... in

Если вы хотите исключить строки, добавьте проверку для typeof prop !== "string" в операторе if.

...