JavaScript 빠른 팁: 배열에서 모든 잘못된 값을 신속하게 필터링

4521 단어 typescriptjavascript
기능적인 방식으로 배열을 사용하는 것은 요즘 JavaScript로 작업할 때 대부분 기본이 되었습니다. 맵, 필터 및 forEach를 사용할 수 있는데 왜 for, for..of, while, do..while 등과 같은 전통적인 명령형 루프를 사용해야 합니까?

그러나 이러한 기능적 메서드에는 한 가지 주의 사항이 있습니다. 전체 파이프라인을 중단하지 않고는 절대로 throw할 수 없습니다.

someArray.map((value) => {
  if (someConditionMet) {
    throw new Error('...'); // this is not the best idea...
  }
  // ...
  return someValidValue;
});


그럼 당신은 무엇을합니까? 음, null을 반환하여 잘못된 결과가 있음을 표시할 수 있습니다.

someArray.map((value) => {
  if (someConditionMet) {
    return null; // now the pipeline can continue
  }
  // ...
  return someValidValue;
});


괜찮아. 파이프라인을 중단하지 않으려면 계속해서 null 값을 "작동하지 않음"에 대한 마커로 사용할 수 있습니다.

그러나 나중에 이러한 값을 제거하려면 어떻게 해야 합니까? 아마도 이와 같은 것입니까?

someArray.map((value) => {
  if (someConditionMet) {
    return null; // now the pipeline can continue
  }
  // ...
  return someValidValue;
}).filter((value) => value);


이렇게 하면 유효한 값만 남게 되므로 완벽하게 괜찮지만 이 값을 더 짧게 만들 수 있습니다.

코드



JavaScript에는 일급 기능이 있습니다. 이 특정 인수로 함수를 예상하는 다른 함수에 함수 참조를 전달할 수 있습니다. 그리고 부울 생성자는 실제로 참과 거짓을 정의하는 기능입니다.

const array = [1, null, undefined, 0, 2, "", 4];

const result = array.filter(Boolean);


이 파이프라인의 필터 단계가 실행되면 모든 진리값만 남게 되며 null 또는 정의되지 않음과 같은 특수한 경우를 처리할 필요 없이 진리값으로 계속 작업할 수 있습니다.

전체 팁을 이미지로



시각적 콘텐츠가 더 마음에 들거나 나중에 저장하고 싶다면 이 모든 것을 하나의 이미지에 담았습니다. 나는 그것을 좋아하면 좋겠!



가기 전에



이와 같은 더 많은 콘텐츠를 읽고 싶다면 언제든지 또는 에서 저를 방문하십시오.

계속 성장하는 멋진 친구들의 그룹으로 당신을 세고 싶습니다!

좋은 웹페이지 즐겨찾기