Для добавления новой структуры перед уже существующей можно использовать функцию `unshift()`, которая добавляет элементы в начало массива. Ниже приведен пример:
```javascript
let array = [s1]; // Существующий массив с одной структурой
array.unshift(s0); // Добавляем новую структуру s0 в начало массива
```
Чтобы избежать постоянного копирования данных в массив и обратно, можно использовать ссылки на структуры вместо их копирования. Для этого можно создать массив ссылок и передавать ссылки на структуры в функцию `dummy`. Ниже приведен пример улучшенного кода:
```javascript
function send(s1, s2) {
dummy(s1, s2); // Передаем ссылки на структуры вместо их копирования
}
let s0 = new S1(); // Создаем новую структуру
let s1 = new S1(); // Создаем первую структуру
let s2 = new S2(); // Создаем вторую структуру
let array = [s1]; // Создаем массив ссылок и добавляем первую структуру
send(array, s2); // Передаем ссылки на структуры вместо их копирования
```
Таким образом, используя ссылки на структуры вместо их копирования, можно сократить избыточное использование памяти и повысить производительность кода.