@cesium/engine
Version:
CesiumJS is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin.
41 lines (39 loc) • 1.22 kB
JavaScript
import defined from "./defined.js";
/**
* Adds all elements from the given source array to the given target array.
*
* If the <code>source</code> is <code>null</code>, <code>undefined</code>,
* or empty, then nothing will be done. Otherwise, this has the same
* semantics as<br>
* <code>for (const s of source) target.push(s);</code><br>
* but is usually more efficient than a <code>for</code>-loop, and does not
* put the elements of the source on the stack, as it would be done with the
* spread operator or when using <code>target.push.apply(source)</code>.
*
* @function
* @private
*
* @param {Array} target The target array
* @param {Array|undefined} source The source array
*
* @example
* const target = [ 0, 1, 2 ];
* const source = [ 3, 4, 5 ];
* Cesium.addAllToArray(target, source);
* // The target is now [ 0, 1, 2, 3, 4, 5 ]
*/
function addAllToArray(target, source) {
if (!defined(source)) {
return;
}
const sourceLength = source.length;
if (sourceLength === 0) {
return;
}
const targetLength = target.length;
target.length += sourceLength;
for (let i = 0; i < sourceLength; i++) {
target[targetLength + i] = source[i];
}
}
export default addAllToArray;