Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | 32229x 32229x 32229x 32229x 32229x 28611x 48412x 48390x 48390x 868x 868x 864x 4x 47522x 32229x 31450x 62117x 57788x 57788x 32229x | import defined from "./defined.js";
/**
* Merges two objects, copying their properties onto a new combined object. When two objects have the same
* property, the value of the property on the first object is used. If either object is undefined,
* it will be treated as an empty object.
*
* @example
* const object1 = {
* propOne : 1,
* propTwo : {
* value1 : 10
* }
* }
* const object2 = {
* propTwo : 2
* }
* const final = Cesium.combine(object1, object2);
*
* // final === {
* // propOne : 1,
* // propTwo : {
* // value1 : 10
* // }
* // }
*
* @param {object} [object1] The first object to merge.
* @param {object} [object2] The second object to merge.
* @param {boolean} [deep=false] Perform a recursive merge.
* @returns {object} The combined object containing all properties from both objects.
*
* @function
*/
function combine(object1, object2, deep) {
deep = deep ?? false;
const result = {};
const object1Defined = defined(object1);
const object2Defined = defined(object2);
let property;
let object1Value;
let object2Value;
if (object1Defined) {
for (property in object1) {
if (object1.hasOwnProperty(property)) {
object1Value = object1[property];
if (
object2Defined &&
deep &&
typeof object1Value === "object" &&
object2.hasOwnProperty(property)
) {
object2Value = object2[property];
if (typeof object2Value === "object") {
result[property] = combine(object1Value, object2Value, deep);
} else {
result[property] = object1Value;
}
} else {
result[property] = object1Value;
}
}
}
}
if (object2Defined) {
for (property in object2) {
if (
object2.hasOwnProperty(property) &&
!result.hasOwnProperty(property)
) {
object2Value = object2[property];
result[property] = object2Value;
}
}
}
return result;
}
export default combine;
|