Linda Keating
Linda Keating

Reputation: 2435

JavaScript Object.keys returning empty array

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
}

Upvotes: 16

Views: 18158

Answers (2)

Divyanth Jayaraj
Divyanth Jayaraj

Reputation: 960

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)));

Upvotes: 7

Benjamin Gruenbaum
Benjamin Gruenbaum

Reputation: 276306

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

Upvotes: 20

Related Questions