Return an array of an object's own and inherited enumerable and non-enumerable property names.
var propertyNamesIn = require( '@stdlib/utils/property-names-in' );
Returns an array
of an object's own and inherited enumerable and non-enumerable property names.
var obj = {
'a': 1,
'b': 2
};
var keys = propertyNamesIn( obj );
// e.g., returns [ 'a', 'b', ... ]
object
key enumeration is not specified according to the ECMAScript specification. In practice, however, most engines use insertion order to sort an object
's keys, thus allowing for deterministic extraction.Object.getOwnPropertyNames()
, if provided null
or undefined
, the function returns an empty array
, rather than throwing an error.var defineProperty = require( '@stdlib/utils/define-property' );
var propertyNamesIn = require( '@stdlib/utils/property-names-in' );
function Foo() {
this.beep = 'boop';
this.a = {
'b': 'c'
};
defineProperty( this, 'baz', {
'value': 'qux',
'configurable': true,
'writable': true,
'enumerable': false
});
return this;
}
Foo.prototype.foo = [ 'bar' ];
var obj = new Foo();
var keys = propertyNamesIn( obj );
console.log( keys );
// e.g., => [ 'beep', 'a', 'baz', 'foo', ... ]