mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-29 14:37:49 +00:00
38 lines
857 B
JavaScript
38 lines
857 B
JavaScript
import arrayLikeKeys from './.internal/arrayLikeKeys.js'
|
|
import isArrayLike from './isArrayLike.js'
|
|
|
|
/**
|
|
* Creates an array of the own enumerable property names of `object`.
|
|
*
|
|
* **Note:** Non-object values are coerced to objects. See the
|
|
* [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
|
|
* for more details.
|
|
*
|
|
* @since 0.1.0
|
|
* @category Object
|
|
* @param {Object} object The object to query.
|
|
* @returns {Array} Returns the array of property names.
|
|
* @see values, valuesIn
|
|
* @example
|
|
*
|
|
* function Foo() {
|
|
* this.a = 1
|
|
* this.b = 2
|
|
* }
|
|
*
|
|
* Foo.prototype.c = 3
|
|
*
|
|
* keys(new Foo)
|
|
* // => ['a', 'b'] (iteration order is not guaranteed)
|
|
*
|
|
* keys('hi')
|
|
* // => ['0', '1']
|
|
*/
|
|
function keys(object) {
|
|
return isArrayLike(object)
|
|
? arrayLikeKeys(object)
|
|
: Object.keys(Object(object))
|
|
}
|
|
|
|
export default keys
|