15

I'm trying to get the keys from a JavaScript Object. When I inspect the object I can see that there is a key value pair on the object but when I run Object.keys(myObject) I get an empty array returned. What am I doing wrong?

enter image description here

I'm following this documentation here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

And the function which creates the object is as follows:

query: function () {
  var query = {}
  _.each(this.$el.find('input:checked'), function (el, index) {
    Object.defineProperty(query, el.id, {value: el.value})
  })
  return query
}
Linda Keating
  • 2,215
  • 7
  • 31
  • 63

2 Answers2

19

Object.keys only returns enumerable own keys. Try Object.getOwnPropertyNames.

Benjamin Gruenbaum
  • 270,886
  • 87
  • 504
  • 504
6

Console.log prints the most recent value of its contents and not the value of that content at that specific time of execution.

To log the array, try deep-cloning its value to another variable and then console log it.

 console.log(JSON.parse(JSON.stringify(keys)));
Divyanth Jayaraj
  • 950
  • 4
  • 12
  • 29