정보실

웹학교

정보실

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 비트 단위 연산자는 드물게 사용되었지만 이 기사에서 보았듯이 꽤 유용한 사용 사례가 있습니다. 이 기사를 읽는 과정에서 얻은 통찰력이 지금부터 일상적인 코딩으로 표현 될 수 있기를 바랍니다.






페이지 정보

조회 73회 ]  작성일19-08-07 17:07

웹학교