[英]Refactoring of the hard code in javascript
我有一些API可以啟動我的項目,這是代碼的一部分,我想問一下
getList(oauth2Client).then(items => { for (const item of items) { if (item.selected && (item.id === 'sib43214@gmail.com' || item.id === 'iva72198@gmail.com')) { promiseArray.push(getEvents(oauth2Client, item.id, item.backgroundColor)); } }
我該如何在沒有硬代碼的情況下執行if語句,我的意思是將這兩封特定的電子郵件更改為一些常見的用例。
使用數組或Set
代替:
getList(oauth2Client).then(items => {
const emails = new Set(['sib43214@gmail.com', 'iva72198@gmail.com']);
for (const item of items) {
if (item.selected && emails.has(item.id)) {
promiseArray.push(getEvents(oauth2Client, item.id, item.backgroundColor));
}
}
});
我更喜歡Set
因為它具有較低的復雜度,但是對於數組,請使用.includes
:
getList(oauth2Client).then(items => {
const emails = ['sib43214@gmail.com', 'iva72198@gmail.com'];
for (const item of items) {
if (item.selected && emails.includes(item.id)) {
promiseArray.push(getEvents(oauth2Client, item.id, item.backgroundColor));
}
}
});
或者,如果您希望傳遞任何電子郵件地址,請使用正則表達式,例如:
getList(oauth2Client).then(items => {
const emailRe = /^\w+@[a-z0-9]\.[a-z]+$/i;
for (const item of items) {
if (item.selected && emailRe.test(item.id)) {
promiseArray.push(getEvents(oauth2Client, item.id, item.backgroundColor));
}
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.