You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
1.1 KiB
84 lines
1.1 KiB
|
|
/** |
|
* HOP ref. |
|
*/ |
|
|
|
var has = Object.prototype.hasOwnProperty; |
|
|
|
/** |
|
* Return own keys in `obj`. |
|
* |
|
* @param {Object} obj |
|
* @return {Array} |
|
* @api public |
|
*/ |
|
|
|
exports.keys = Object.keys || function(obj){ |
|
var keys = []; |
|
for (var key in obj) { |
|
if (has.call(obj, key)) { |
|
keys.push(key); |
|
} |
|
} |
|
return keys; |
|
}; |
|
|
|
/** |
|
* Return own values in `obj`. |
|
* |
|
* @param {Object} obj |
|
* @return {Array} |
|
* @api public |
|
*/ |
|
|
|
exports.values = function(obj){ |
|
var vals = []; |
|
for (var key in obj) { |
|
if (has.call(obj, key)) { |
|
vals.push(obj[key]); |
|
} |
|
} |
|
return vals; |
|
}; |
|
|
|
/** |
|
* Merge `b` into `a`. |
|
* |
|
* @param {Object} a |
|
* @param {Object} b |
|
* @return {Object} a |
|
* @api public |
|
*/ |
|
|
|
exports.merge = function(a, b){ |
|
for (var key in b) { |
|
if (has.call(b, key)) { |
|
a[key] = b[key]; |
|
} |
|
} |
|
return a; |
|
}; |
|
|
|
/** |
|
* Return length of `obj`. |
|
* |
|
* @param {Object} obj |
|
* @return {Number} |
|
* @api public |
|
*/ |
|
|
|
exports.length = function(obj){ |
|
return exports.keys(obj).length; |
|
}; |
|
|
|
/** |
|
* Check if `obj` is empty. |
|
* |
|
* @param {Object} obj |
|
* @return {Boolean} |
|
* @api public |
|
*/ |
|
|
|
exports.isEmpty = function(obj){ |
|
return 0 == exports.length(obj); |
|
}; |