你能指导我如何用循环或类似的东西替换很长的 JavaScript 吗?我必须创建一些变量,然后在每次按键后调用一个方法。
var list1 = new List('list1', options);
var list2 = new List('list2', options);
var list3 = new List('list3', options);
var list4 = new List('list4', options);
var list5 = new List('list5', options);
var list6 = new List('list6', options);
var list7 = new List('list7', options);
var list8 = new List('list8', options);
var list9 = new List('list9', options);
var list10 = new List('list10', options);
var list11 = new List('list11', options);
$('.search-field').on('keyup', function () {
window.scrollTo(0, 0);
list1.search($(this).val());
list2.search($(this).val());
list3.search($(this).val());
list4.search($(this).val());
list5.search($(this).val());
list6.search($(this).val());
list7.search($(this).val());
list8.search($(this).val());
list9.search($(this).val());
list10.search($(this).val());
list11.search($(this).val());
});
最佳答案
您可以将变量分组为数组或对象。
例如(对象中的变量):
const n = 11;
var lists = {};
for(let i=1;i<=n;++i) {
lists['list'+i] = new List('list'+i, options);
}
$('.search-field').on('keyup', function () {
window.scrollTo(0, 0);
for(let i=1;i<=n;++i) {
lists['list'+i].search($(this).val());
}
}
其中对象键是“变量名称”,该键的值只是值
object[key] = value // write value
object[key] // read value
关于javascript - JS 变量的动态名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49732978/