@Alisa94

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

Помогите пожалуйста. Имею такую ситуацию, есть объект содержащий список элементов начинающиеся с буквы H за которым следует число за которым следует слово '- num ' за которым опять следует число, например:

var obj = {
  H0 - num0: {name: foo, id: func}
  H1 - num1: {name: val, id: value}
  H2 - num2: {name: constant, id: cnst}
}


Мне нушно создать поиск, который нашёл объект только по номеру(число), например я в поиске ввожу 2 он мне возвращает объект H2 - num2: {name: constant, id: cnst}. У меня уже имеется готовый поиск, но как получить объект только по номеру не знаю.

const objData = [...document.getElementsByClassName('btn')].reduce((a, c, i ) =>
 (a['H' + i + ' - num ' + i] = {name: c.name, id: c.id}, a), {});

 var form = document.querySelector('#search');
 form.addEventListener('submit', function(event) {
  event.preventDefault(); 
  var data = new FormData(form);
  var num = data.get('num');
  if (objData[num]) {
    console.log(objData[num]);
  } else {
    console.log('Not found');
  }
});


<ul>
                <li><button class="btn" name="foo" id="func"/>foo</li>
                <li><button class="btn" name="val" id="value"/>val</li>
                <li><button class="btn" name="constant" id="cnst"/>constant</li>
    </ul>
    <div class="search">
              <form id="search">
                <input type="text" name="num" placeholder="Huisnummer">
                <button type="submit">Submit</button>
              </form>
    </div>


Любая помощь будет полезна, заранее спасибо.
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Alisa94 Автор вопроса
Решение было в конкатенации.

var data = new FormData(form);
  var num = 'H' + data.get('num') + ' - num' + data.get('num'); // Решение 
  if (objData[num]) {
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы