Я хочу сохранить список строк, которые я буду проверять только на наличие, например:
corporatePlan = [
'canDeAuthorize',
'hasGmailSupport',
'canShareReports',
'canSummonKraken',
'etc'
]
Итак, когда пользователь пытается вызвать kraken, я сделаю corporatePlan.indexof('canSummonKraken') != -1
, чтобы узнать, может ли он.
Сотрудник предполагает, что быстрее хранить его как объект:
"Corporate Plan" = {
'canDeAuthorize' : null,
'hasGmailSupport' : null,
'canShareReports' : null,
'canSummonKraken' : null,
'etc' : null
}
И просто сделайте что-нибудь вроде 'canSummonKraken' in corporatePlan
, чтобы проверить, содержит ли этот план этот ключ. Это имеет смысл в классическом смысле CS, поскольку, конечно, "содержит" - это постоянное время на карте и линейное по массиву. Означает ли это, что массивы и объекты реализованы под капотом в JS?
В нашем конкретном случае, с менее чем 100 элементами, скорость не имеет большого значения. Но для большего массива, какой путь будет быстрее при доступе?