mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-08 10:17:48 +00:00
Simplify nullish and falsey checks.
This commit is contained in:
@@ -1655,7 +1655,7 @@
|
|||||||
* @returns {Object} Returns `object`.
|
* @returns {Object} Returns `object`.
|
||||||
*/
|
*/
|
||||||
function baseAssign(object, source) {
|
function baseAssign(object, source) {
|
||||||
return source == null ? object : copyObject(source, keys(source), object);
|
return object && copyObject(source, keys(source), object);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2039,7 +2039,7 @@
|
|||||||
* @returns {Object} Returns `object`.
|
* @returns {Object} Returns `object`.
|
||||||
*/
|
*/
|
||||||
function baseForIn(object, iteratee) {
|
function baseForIn(object, iteratee) {
|
||||||
return baseFor(object, iteratee, keysIn);
|
return object == null ? object : baseFor(object, iteratee, keysIn);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2051,7 +2051,7 @@
|
|||||||
* @returns {Object} Returns `object`.
|
* @returns {Object} Returns `object`.
|
||||||
*/
|
*/
|
||||||
function baseForOwn(object, iteratee) {
|
function baseForOwn(object, iteratee) {
|
||||||
return baseFor(object, iteratee, keys);
|
return object && baseFor(object, iteratee, keys);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2063,7 +2063,7 @@
|
|||||||
* @returns {Object} Returns `object`.
|
* @returns {Object} Returns `object`.
|
||||||
*/
|
*/
|
||||||
function baseForOwnRight(object, iteratee) {
|
function baseForOwnRight(object, iteratee) {
|
||||||
return baseForRight(object, iteratee, keys);
|
return object && baseForRight(object, iteratee, keys);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -4128,16 +4128,18 @@
|
|||||||
* @returns {Array} Returns the array of property names.
|
* @returns {Array} Returns the array of property names.
|
||||||
*/
|
*/
|
||||||
function shimKeys(object) {
|
function shimKeys(object) {
|
||||||
var props = keysIn(object),
|
var result = [];
|
||||||
|
if (!object) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
var index = -1,
|
||||||
|
props = keysIn(object),
|
||||||
propsLength = props.length,
|
propsLength = props.length,
|
||||||
length = propsLength && object.length;
|
length = propsLength && object.length;
|
||||||
|
|
||||||
var allowIndexes = !!length && isLength(length) &&
|
var allowIndexes = !!length && isLength(length) &&
|
||||||
(isArray(object) || isArguments(object) || isString(object));
|
(isArray(object) || isArguments(object) || isString(object));
|
||||||
|
|
||||||
var index = -1,
|
|
||||||
result = [];
|
|
||||||
|
|
||||||
while (++index < propsLength) {
|
while (++index < propsLength) {
|
||||||
var key = props[index];
|
var key = props[index];
|
||||||
if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {
|
if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {
|
||||||
@@ -6509,8 +6511,10 @@
|
|||||||
* // => 7
|
* // => 7
|
||||||
*/
|
*/
|
||||||
function size(collection) {
|
function size(collection) {
|
||||||
var length = collection ? getLength(collection) : 0;
|
if (collection == null) {
|
||||||
return isLength(length) ? length : keys(collection).length;
|
return 0;
|
||||||
|
}
|
||||||
|
return isArrayLike(collection) ? collection.length : keys(collection).length;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -8860,7 +8864,7 @@
|
|||||||
* // => logs 'a', 'b', then 'c' (iteration order is not guaranteed)
|
* // => logs 'a', 'b', then 'c' (iteration order is not guaranteed)
|
||||||
*/
|
*/
|
||||||
function forIn(object, iteratee) {
|
function forIn(object, iteratee) {
|
||||||
return baseFor(object, toFunction(iteratee), keysIn);
|
return object == null ? object : baseFor(object, toFunction(iteratee), keysIn);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -8888,7 +8892,7 @@
|
|||||||
* // => logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'
|
* // => logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'
|
||||||
*/
|
*/
|
||||||
function forInRight(object, iteratee) {
|
function forInRight(object, iteratee) {
|
||||||
return baseForRight(object, toFunction(iteratee), keysIn);
|
return object == null ? object : baseForRight(object, toFunction(iteratee), keysIn);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -8918,7 +8922,7 @@
|
|||||||
* // => logs 'a' then 'b' (iteration order is not guaranteed)
|
* // => logs 'a' then 'b' (iteration order is not guaranteed)
|
||||||
*/
|
*/
|
||||||
function forOwn(object, iteratee) {
|
function forOwn(object, iteratee) {
|
||||||
return baseForOwn(object, toFunction(iteratee));
|
return object && baseForOwn(object, toFunction(iteratee));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -8946,7 +8950,7 @@
|
|||||||
* // => logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'
|
* // => logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'
|
||||||
*/
|
*/
|
||||||
function forOwnRight(object, iteratee) {
|
function forOwnRight(object, iteratee) {
|
||||||
return baseForOwnRight(object, toFunction(iteratee));
|
return object && baseForOwnRight(object, toFunction(iteratee));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -8964,7 +8968,7 @@
|
|||||||
* // => ['after', 'ary', 'assign', ...]
|
* // => ['after', 'ary', 'assign', ...]
|
||||||
*/
|
*/
|
||||||
function functions(object) {
|
function functions(object) {
|
||||||
return baseFunctions(object, keysIn(object));
|
return object == null ? [] : baseFunctions(object, keysIn(object));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -9114,7 +9118,10 @@
|
|||||||
* // => ['0', '1']
|
* // => ['0', '1']
|
||||||
*/
|
*/
|
||||||
var keys = !nativeKeys ? shimKeys : function(object) {
|
var keys = !nativeKeys ? shimKeys : function(object) {
|
||||||
var Ctor = object == null ? undefined : object.constructor;
|
if (!object) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
var Ctor = object.constructor;
|
||||||
if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
|
if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
|
||||||
(typeof object == 'function' ? lodash.support.enumPrototypes : isArrayLike(object))) {
|
(typeof object == 'function' ? lodash.support.enumPrototypes : isArrayLike(object))) {
|
||||||
return shimKeys(object);
|
return shimKeys(object);
|
||||||
@@ -9529,7 +9536,7 @@
|
|||||||
* // => ['h', 'i']
|
* // => ['h', 'i']
|
||||||
*/
|
*/
|
||||||
function values(object) {
|
function values(object) {
|
||||||
return baseValues(object, keys(object));
|
return object ? baseValues(object, keys(object)) : [];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -9556,7 +9563,7 @@
|
|||||||
* // => [1, 2, 3] (iteration order is not guaranteed)
|
* // => [1, 2, 3] (iteration order is not guaranteed)
|
||||||
*/
|
*/
|
||||||
function valuesIn(object) {
|
function valuesIn(object) {
|
||||||
return baseValues(object, keysIn(object));
|
return object == null ? baseValues(object, keysIn(object)) : [];
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------------------------------------------------*/
|
/*------------------------------------------------------------------------*/
|
||||||
|
|||||||
Reference in New Issue
Block a user