我有以下需要简化的代码。
MenusDeroulants(string, html_element) 是我在 11 对上使用的函数,它给出了以下内容:
MenusDeroulants("GetListeCatDdeurs", $("#cbx_Cat_Ddeur"));
MenusDeroulants("GetListeCommunautes", $("#cbx_Communaute"));
MenusDeroulants("GetListeOccupations", $("#cbx_Occupation"));
MenusDeroulants("GetListeProvinces", $("#cbx_Province"));
MenusDeroulants("GetListeScolarites", $("#cbx_Scolarite"));
MenusDeroulants("GetListeSexes", $("#cbx_Sexe"));
MenusDeroulants("GetListeSituations_Matrimoniales", $("#cbx_SituationMatrimoniale"));
MenusDeroulants("GetListeSource_De_Revenus", $("#cbx_SrceRevenu"));
MenusDeroulants("GetListeStatuts_Legaux", $("#cbx_StatutLegal"));
MenusDeroulants("GetListeTranche_Revenu", $("#cbx_TrancheRevenu"));
MenusDeroulants("GetListeVilles", $("#cbx_Ville"));
有没有办法简化一下?我对数组和对象的理解非常有限,我找不到一种方法来创建一个循环。
最佳答案
改用对象数组。您还可以使用数组的数组,但对象的数组会更具可读性,因为它具有描述其值的属性名称:
const list = [
{ string: 'GetListeCatDdeurs', selector: '#cbx_Cat_Ddeur' },
{ string: 'GetListeCommunautes', selector: '#cbx_Communaute' },
{ string: 'GetListeOccupations', selector: '#cbx_Occupation' },
// etc
];
list.forEach(({ string, selector }) => {
MenusDeroulants(string, $(selector));
});
不确定所有 MenusDeroulants
调用是什么,但如果第一个参数始终以 GetListe
开头,并且选择器始终是以 开头的 ID cbx_
,您可以通过在 forEach
循环中添加这些公共(public)子字符串来减少重复:
const list = [
{ subString: 'CatDdeurs', subSelector: 'Cat_Ddeur' },
{ subString: 'Communautes', subSelector: 'Communaute' },
{ subString: 'Occupations', subSelector: 'Occupation' },
// etc
];
list.forEach(({ subString, subSelector}) => {
MenusDeroulants('GetListe' + subString, $('#cbx_' + subSelector));
});
关于javascript - 对象或数组或两者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51182510/