분류
javascript
JavaScript 비트 연산자에 대한 흥미로운 사용 사례(6)
본문
옵션 플래그가 준비되었으므로 normalizeList() 함수를 정의 할 수 있습니다.
function normalizeList (list, flag = LIST_DEFAULT) {
if (flag & LIST_FRACTION) {
const max = Math.max(...list);
list = list.map(value => Number((value / max).toFixed(2)));
}
if (flag & LIST_UNIQUE) {
list = [...new Set(list)];
}
if (flag & LIST_SORTED) {
list = list.sort((a, b) => a - b);
}
return list;
}
옵션이 활성화되어 있는지 확인하기 위해 & 연산자를 사용하여 옵션의 해당 비트가 켜져 있는지 확인합니다 (1로 설정). & 연산은 다음 코드 스니펫에 표시된 대로 함수에 전달 된 플래그 인수와 옵션에 해당하는 플래그를 사용하여 수행됩니다.
// Checking if the unique option is activated
// (flag & LIST_UNIQUE) === LIST_UNIQUE (activated)
// (flag & LIST_UNIQUE) === 0 (deactivated)
flag & LIST_UNIQUE
결론
글을 읽는 데 시간이 오래 걸리더라도 이 기사가 끝날 때까지 읽어 주셔서 정말 기쁩니다. 책을 읽는 동안 한 두 가지를 배웠으면 좋겠습니다.
JavaScript 비트 단위 연산자는 드물게 사용되었지만 이 기사에서 보았듯이 꽤 유용한 사용 사례가 있습니다. 이 기사를 읽는 과정에서 얻은 통찰력이 지금부터 일상적인 코딩으로 표현 될 수 있기를 바랍니다.
- 이전글JS Promises: race vs all vs allSettled(1) 19.08.07
- 다음글JavaScript 비트 연산자에 대한 흥미로운 사용 사례(5) 19.08.07