Это степени двух, предназначенные для использования в битовом поле .
. Вы должны сказать, проверяется ли данная дата с помощью побитового оператора &
.
const SUNDAY = 64; // 0100 0000
const SATURDAY = 32; // 0010 0000
const FRIDAY = 16; // 0001 0000
const THURSDAY = 8; // 0000 1000
// etc.
let day = 48; // 0011 0000
day & SUNDAY // 0 indicating Sunday should not be checked
day & SATURDAY // 32 indicating Saturday should be checked
day & FRIDAY // 16 indicated Friday should be checked
day & THURSDAY // 0 indicated Thursday should not be checked
Если вы хотите превратить это в массив проверенных значений, простейшим вариантом будет прекратить использование битового поля и вместо этого хранить массив строк JSON.
Предполагая, что это невозможно, ваше утверждение case может быть заменено чем-то простым: ...
const DAYS = [ 1, 2, 4, 8, 16, 32, 64 ];
const dayBitfield = 41;
DAYS.filter(day => dayBitfield & day) // [1, 8, 32]