对象或数组或两者

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)

有没有办法简化它?我对数组和对象的理解是如此有限,我无法找到一种方法来创建一个循环.

Cer*_*nce 5

请改用对象数组.您也可以使用数组数组,但是对象数组将更具可读性,因为它具有描述其值的属性名称:

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)