![](/img/trans.png)
[英]Javascript how to retrieve value from a Map that has an EnumValue as key
[英]javascript retrieve value from a map
我正在嘗試開發一個谷歌腳本應用程序。
這里是一個 function 創建一個數組 map。
function getOffices(){
var result=AdminDirectory.Groups.list({domain:"example.com"})
result=result.groups.filter(function(group){
var str=group.email;
return str.search("-office@example.com")>=0;
})
result=result.map(function(group){ return {name:group.name,email:group.email}})
return result;
}
我創建了一個邏輯塊,我想根據結果執行某些操作,如下所示:
var getOrgUnitPath = (accountOffice, accountType) => {
if (accountType === 'facilitator') {
return 'Limited Accounts/Gmail Plus Calendar';
} else {
switch (accountOffice) {
case accountOffice.includes('Boston'):
return "/Standard-Access/Boston";
break;
case accountOffice.includes('New York'):
return '/Standard-Access/New York';
break;
case accountOffice.includes('Lincoln'):
return '/Standard-Access/Lincoln';
break;
default:
return '/Standard-Access';
break;
}
}
};
最后,我嘗試設置組織單位——這最終是我想要做的,但似乎無法正確使用語法,我已經嘗試了我能想到的一切。 我已經硬編碼了“accountType”並且它工作了,所以我知道 formObject.accountType 運行正常。
orgUnitPath: getOrgUnitPath(accountType, formObject.accountType),
提前致謝!
這是開關盒的錯誤用法。
如果accountOffice
只是紐約、波士頓、林肯。 刪除復雜條件並替換為
switch (accountOffice) {
case "Boston":
return "/Standard-Access/Boston";
break;
case "New York":
return "/Standard-Access/New York";
break;
case "Lincoln":
return "/Standard-Access/Lincoln";
break;
default:
return "/Standard-Access";
break;
}
如果不是,如果您有復雜的條件要檢查而不是簡單的匹配情況,請使用 if-else
if (accountOffice.includes("Boston")) {
return "/Standard-Access/Boston";
} else if (accountOffice.includes("New York")) {
return "/Standard-Access/New York";
} else if (accountOffice.includes("Lincoln")) {
return "/Standard-Access/Lincoln";
} else {
return "/Standard-Access";
}
我重寫了代碼,以便更好地理解它。 據我所知, getOffices
列出了所有辦公室, getOrgUnitPath
返回一個路徑,其中包括與辦公室的有序列表匹配的第一個辦公室['Boston', 'NY', 'Lincoln']
。 如果是這種情況,那么缺少的是getOrgUnitPath
的第一個參數應該是getOffices()
,對嗎? (注意這是 function getOffices
的執行。)
這是我喜歡的“簡化”代碼。 我希望它有幫助:
const getOffices = () => {
const bigList = x.y.list({ domain: 'example.com' }) // ?
return bigList
.filter(cur => ~cur.email.search('abc'))
.map(cur => ({
name: cur.name,
email: cur.email
}))
}
const getPath = (accOffice, accType) => {
if (accType === 'xyz')
return 'foobar'
const city = ['Boston', 'NY', 'Lincoln']
.find(cur => accOffice.includes(cur))
return `yadayada/${city}`
}
const theFinalObj = {
orgUnitPath: getPath(getOffices(), 'rightHardcodedType')
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.