你能指导我如何用循环或类似的东西替换长的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());
});
答案 0 :(得分:2)
您可以将变量分组为数组或对象。
例如(对象中的变量):
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());
}
}
对象键是&#34;变量名&#34;和该值的值只是值
object[key] = value // write value
object[key] // read value
答案 1 :(得分:0)
您可以用此替换您的代码。从空array
开始。然后使用for
循环添加元素,然后使用另一个for
循环来调用函数
const list = [];
for (let i = 0; i < 11; i++) {
list[i] = new List('list' + i, options);
}
$('.search-field').on('keyup', function () {
window.scrollTo(0, 0);
for (let i = 0; i < 11; i++) {
list[i].search($(this).val());
}
});