请帮帮我。我有这种情况,有一个对象包含一个以字母 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>
任何帮助都会有所帮助,在此先感谢。
解决方案是串联的。