2015-11-05 3 views
4

Я пытаюсь получить ключи от объекта JavaScript. Когда я проверяю объект, я вижу, что на объекте есть пара значений ключа, но когда я запускаю Object.keys(myObject), я получаю пустой массив. Что я делаю не так?JavaScript Object.keys, возвращающий пустой массив

enter image description here

Я следую за эту документацию здесь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

и функцию, которая создает объект выглядит следующим образом:

query: function() { 
    var query = {} 
    _.each(this.$el.find('input:checked'), function (el, index) { 
    Object.defineProperty(query, el.id, {value: el.value}) 
    }) 
    return query 
} 
+7

'Object.keys' возвращает только _enumerable_ _own_ ключи. Попробуйте 'Object.getOwnPropertyNames'. –

+0

OMG спасибо. вы спасли мне много боли и головы царапин –

+0

Я не могу найти дубликат, поэтому я отправлю его в качестве ответа. –

ответ

4

Object.keys возвращает только перечисляемыхсобственных ключей , Попробуйте Object.getOwnPropertyNames.

0

Console.log печатает самое последнее значение его содержимого и не значение этого содержимого в это конкретное время исполнения.

Чтобы зарегистрировать массив, попробуйте выполнить глубокое клонирование его значения другой переменной, а затем запустите его.

console.log(JSON.parse(JSON.stringify(keys))); 
Смежные вопросы