mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-01 15:57:48 +00:00
Simplify has and hasIn.
This commit is contained in:
@@ -1,16 +0,0 @@
|
||||
/** Used to check objects for own properties. */
|
||||
const hasOwnProperty = Object.prototype.hasOwnProperty
|
||||
|
||||
/**
|
||||
* The base implementation of `has` without support for deep paths.
|
||||
*
|
||||
* @private
|
||||
* @param {Object} [object] The object to query.
|
||||
* @param {Array|string} key The key to check.
|
||||
* @returns {boolean} Returns `true` if `key` exists, else `false`.
|
||||
*/
|
||||
function baseHas(object, key) {
|
||||
return object != null && hasOwnProperty.call(object, key)
|
||||
}
|
||||
|
||||
export default baseHas
|
||||
@@ -1,13 +0,0 @@
|
||||
/**
|
||||
* The base implementation of `hasIn` without support for deep paths.
|
||||
*
|
||||
* @private
|
||||
* @param {Object} [object] The object to query.
|
||||
* @param {Array|string} key The key to check.
|
||||
* @returns {boolean} Returns `true` if `key` exists, else `false`.
|
||||
*/
|
||||
function baseHasIn(object, key) {
|
||||
return object != null && key in Object(object)
|
||||
}
|
||||
|
||||
export default baseHasIn
|
||||
22
has.js
22
has.js
@@ -1,15 +1,15 @@
|
||||
import baseHas from './.internal/baseHas.js'
|
||||
import hasPath from './.internal/hasPath.js'
|
||||
/** Used to check objects for own properties. */
|
||||
const hasOwnProperty = Object.prototype.hasOwnProperty
|
||||
|
||||
/**
|
||||
* Checks if `path` is a direct property of `object`.
|
||||
* Checks if `key` is a direct property of `object`.
|
||||
*
|
||||
* @since 0.1.0
|
||||
* @category Object
|
||||
* @param {Object} object The object to query.
|
||||
* @param {Array|string} path The path to check.
|
||||
* @returns {boolean} Returns `true` if `path` exists, else `false`.
|
||||
* @see hasIn, set, get
|
||||
* @param {string} key The key to check.
|
||||
* @returns {boolean} Returns `true` if `key` exists, else `false`.
|
||||
* @see hasIn, hasPath, hasPathIn
|
||||
* @example
|
||||
*
|
||||
* const object = { 'a': { 'b': 2 } }
|
||||
@@ -18,17 +18,11 @@ import hasPath from './.internal/hasPath.js'
|
||||
* has(object, 'a')
|
||||
* // => true
|
||||
*
|
||||
* has(object, 'a.b')
|
||||
* // => true
|
||||
*
|
||||
* has(object, ['a', 'b'])
|
||||
* // => true
|
||||
*
|
||||
* has(other, 'a')
|
||||
* // => false
|
||||
*/
|
||||
function has(object, path) {
|
||||
return object != null && hasPath(object, path, baseHas)
|
||||
function has(object, key) {
|
||||
return object != null && hasOwnProperty.call(object, key)
|
||||
}
|
||||
|
||||
export default has
|
||||
|
||||
19
hasIn.js
19
hasIn.js
@@ -1,15 +1,12 @@
|
||||
import baseHasIn from './.internal/baseHasIn.js'
|
||||
import hasPath from './.internal/hasPath.js'
|
||||
|
||||
/**
|
||||
* Checks if `path` is a direct or inherited property of `object`.
|
||||
*
|
||||
* @since 4.0.0
|
||||
* @category Object
|
||||
* @param {Object} object The object to query.
|
||||
* @param {Array|string} path The path to check.
|
||||
* @returns {boolean} Returns `true` if `path` exists, else `false`.
|
||||
* @see has, get, set, unset
|
||||
* @param {string} key The key to check.
|
||||
* @returns {boolean} Returns `true` if `key` exists, else `false`.
|
||||
* @see has, hasPath, hasPathIn
|
||||
* @example
|
||||
*
|
||||
* const object = create({ 'a': create({ 'b': 2 }) })
|
||||
@@ -17,17 +14,11 @@ import hasPath from './.internal/hasPath.js'
|
||||
* hasIn(object, 'a')
|
||||
* // => true
|
||||
*
|
||||
* hasIn(object, 'a.b')
|
||||
* // => true
|
||||
*
|
||||
* hasIn(object, ['a', 'b'])
|
||||
* // => true
|
||||
*
|
||||
* hasIn(object, 'b')
|
||||
* // => false
|
||||
*/
|
||||
function hasIn(object, path) {
|
||||
return object != null && hasPath(object, path, baseHasIn)
|
||||
function hasIn(object, key) {
|
||||
return object != null && key in Object(object)
|
||||
}
|
||||
|
||||
export default hasIn
|
||||
|
||||
Reference in New Issue
Block a user