mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-03 16:47:49 +00:00
Move internal modules to “internal” folder.
This commit is contained in:
30
.internal/baseKeysIn.js
Normal file
30
.internal/baseKeysIn.js
Normal file
@@ -0,0 +1,30 @@
|
||||
import isObject from './isObject.js';
|
||||
import isPrototype from './.internal/isPrototype.js';
|
||||
import nativeKeysIn from './.internal/nativeKeysIn.js';
|
||||
|
||||
/** Used to check objects for own properties. */
|
||||
const hasOwnProperty = Object.prototype.hasOwnProperty;
|
||||
|
||||
/**
|
||||
* The base implementation of `keysIn` which doesn't treat sparse arrays as dense.
|
||||
*
|
||||
* @private
|
||||
* @param {Object} object The object to query.
|
||||
* @returns {Array} Returns the array of property names.
|
||||
*/
|
||||
function baseKeysIn(object) {
|
||||
if (!isObject(object)) {
|
||||
return nativeKeysIn(object);
|
||||
}
|
||||
const isProto = isPrototype(object);
|
||||
const result = [];
|
||||
|
||||
for (const key in object) {
|
||||
if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
|
||||
result.push(key);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
export default baseKeysIn;
|
||||
Reference in New Issue
Block a user