Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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
}
like image 459
Linda Keating Avatar asked Nov 05 '15 18:11

Linda Keating


2 Answers

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

like image 126
Benjamin Gruenbaum Avatar answered Nov 02 '22 19:11

Benjamin Gruenbaum


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)));
like image 7
Divyanth Jayaraj Avatar answered Nov 02 '22 19:11

Divyanth Jayaraj