Как добавить значения из поля ввода в массив объектов?

Как можно преобразовать значения из инпутов, разделенные символом ";", в объекты массива вида {text: inputValue}, чтобы избежать проблемы с пушем значений с помощью метода split или push? В коде уже применяется метод замены пробелов с помощью регулярного выражения, и вызывается функция debounce для определенного действия. Как доработать код дальше для достижения требуемой цели?
  • 31 июля 2024 г. 8:43
Ответы на вопрос 1
Для добавления значений из поля ввода в массив объектов вида {text: inputValue}, можно использовать следующий подход:

1. Создайте переменную для хранения массива объектов:

```javascript
let objectsArray = [];
```

2. При каждом вызове функции debounce, получите значение из поля ввода, разделите его по символу ";" с помощью метода split, затем преобразуйте полученные строки в объекты и добавьте их в массив объектов:

```javascript
function debounce(func, delay) {
  let timer;
  return function() {
    const inputValue = document.getElementById('input').value;
    
    if(timer) {
      clearTimeout(timer);
    }

    timer = setTimeout(() => {
      const values = inputValue.split(';');
      values.forEach(value => {
        const trimmedValue = value.trim();
        if(trimmedValue) {
          objectsArray.push({ text: trimmedValue });
        }
      });
      
      console.log(objectsArray); // вывод массива объектов в консоль
    }, delay);
  };
}

const debounceAction = debounce(() => {
  // действие с задержкой
}, 300); // устанавливаем задержку в 300 миллисекунд

document.getElementById('input').addEventListener('input', debounceAction);
```

Теперь при каждом изменении значения в поле ввода и после заданной задержки, значения из поля будут добавляться в массив объектов в виде {text: inputValue}.
Похожие вопросы