Для удаления элемента из массива при клике без изменения оригинального массива, можно использовать метод `filter()` для создания нового массива без нужного элемента.
Пример кода:
```javascript
const originalArray = ["apple", "banana", "orange", "grape"];
function removeElement(index) {
const newArray = originalArray.filter((item, i) => i !== index);
console.log("Удаленный элемент:", originalArray[index]);
console.log("Новый массив:", newArray);
}
// Пример вызова функции для удаления элемента с индексом 1
removeElement(1);
```
Чтобы улучшить код так, чтобы функция вызывалась только один раз и удалялся только один элемент, можно использовать флаг, который будет показывать, была ли уже вызвана функция удаления.
Пример улучшенного кода:
```javascript
let deleteFlag = false;
function removeElement(index) {
if (!deleteFlag) {
const newArray = originalArray.filter((item, i) => i !== index);
console.log("Удаленный элемент:", originalArray[index]);
console.log("Новый массив:", newArray);
deleteFlag = true;
}
}
// Пример вызова функции для удаления элемента с индексом 2
removeElement(2);
```
Чтобы код правильно запоминал удаленный элемент, можно сохранить его в переменной и использовать при необходимости.
Пример кода:
```javascript
let removedElement = null;
function removeElement(index) {
if (removedElement === null) {
removedElement = originalArray[index];
const newArray = originalArray.filter((item, i) => i !== index);
console.log("Удаленный элемент:", removedElement);
console.log("Новый массив:", newArray);
}
}
// Пример вызова функции для удаления элемента с индексом 0
removeElement(0);
```