object-assign-defined
Version:
A simple module that works exactly as Object.assign, but skips assigning undefined values.
19 lines (15 loc) • 515 B
JavaScript
;
/**
* Works as Object.assign do, but skips assigning "undefined" values. Undefined values are kept in
* target object only.
* @param {...Object} objects
* @returns {Object|*}
*/
module.exports = function (objects) {
for (let i = 1; i < arguments.length; ++i) {
for (const prop in arguments[i])
if (arguments[i].hasOwnProperty(prop) && typeof arguments[i][prop] !== "undefined")
arguments[0][prop] = arguments[i][prop];
}
return arguments[0];
};