javascript - 对象或数组或两者
问题描述
我有以下需要简化的代码。
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
循环中添加这些常见的子字符串来减少重复:
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 - 将消息记录到文本文件
- html - 如何在两个方向上对齐另一个 div 中的父 div 和子 div?
- ruby-on-rails - Ruby on Rails 6 + Docker = Webpacker::Manifest::MissingEntryError?
- octobercms-plugins - octobercms 后端表单 - 字段更改后刷新表单?
- php - 如何为 amazon S3 存储桶调整大小并上传图像?
- javascript - 如何使用 discord.js 兑换不和谐的硝基代码
- google-app-engine - 针对单个索引属性的数据存储查询非常慢
- javascript - 导航栏固定在滚动后如何阻止内容跳转?
- r - R Markdown到PDF和水平线
- javascript - 如何使用正确的流类型扩展 JavaScript 中的错误