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

120
10 августа 2019, 21:40

Помогите пожалуйста. Имею такую ситуацию, есть объект содержащий список элементов начинающиеся с буквы 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>

Любая помощь будет полезна, заранее спасибо.

Answer 1

Решение было в конкатенации.

var data = new FormData(form);
  var num = 'H' + data.get('num') + ' - num' + data.get('num'); // Решение 
  if (objData[num]) {
READ ALSO
Почему элемент рвет верстку?

Почему элемент рвет верстку?

Не могу понять, почему элемент div в котором находится стрелочка при ее отсутствии рвет верстку

99
Подключение шрифтов к сайту

Подключение шрифтов к сайту

Подключил шрифт на сайт с разными начертаниями, 2 начертания подключил немного иначе и результат отображения немного удивил

98
Проблема с JQuery Datepicker

Проблема с JQuery Datepicker

Почему-то даты перескакивают на понедельник,а не остаются на своих местах

121