Pat*_*ice 0 javascript arrays object
我有以下需要简化的代码.
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"));
Run Code Online (Sandbox Code Playgroud)
有没有办法简化它?我对数组和对象的理解是如此有限,我无法找到一种方法来创建一个循环.
请改用对象数组.您也可以使用数组数组,但是对象数组将更具可读性,因为它具有描述其值的属性名称:
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));
});
Run Code Online (Sandbox Code Playgroud)
不确定所有MenusDeroulants
调用将会是什么,但如果第一个参数始终以GetListe
并且选择器始终是以ID开头的ID,则cbx_
可以通过在forEach
循环期间添加这些公共子字符串来重复自己:
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));
});
Run Code Online (Sandbox Code Playgroud)