You're on the right track trying slice. Here's an example of using it with no loops required.
Initialisation
You could initialise newArray with an element directly in the declaration, removing the need for newArray[0] = ...:
const newArray = [theBoolean ? data[0] : data[1]];
Pushing all other elements from data to newArray:
You could use Array.prototype.slice to get all other elements: data.slice(2).
Using spread operator:
const newArray = [theBoolean ? data[0] : data[1]]; newArray.push(...data.slice(2)); // or, one liner: const newArray = [theBoolean ? data[0] : data[1], ...data.slice(2)];
Using Array.prototype.concat:
const newArray = [theBoolean ? data[0] : data[1]].concat(data.slice(2));
Using Function.prototype.apply:
const newArray = [theBoolean ? data[0] : data[1]]; [].push.apply(newArray, data.slice(2));
actual URL+"#name"as stated in comments. Read question and comments carefully, all is there. \$\endgroup\$