Там есть так называемый оператор условного спреда, и он идеально подходит для вашей проблемы.
Когда условие ложно, вы распространяете пустой массив, так что буквально ничего не добавляется в массив, который вы объявляете
const template1=""
const myArray1 = [
{ element : "header" },
...( template1 === 'foo' ? [{ element : "sidebar" }] : [] ),
{ element : "footer" }
]
console.log(myArray1)
const template2="foo"
const myArray2 = [
{ element : "header" },
...( template2 === 'foo' ? [{ element : "sidebar" }] : [] ),
{ element : "footer" }
]
console.log(myArray2)