>  기사  >  웹 프론트엔드  >  JavaScript에서 Set()을 사용하여 고유한 배열을 만듭니다.

JavaScript에서 Set()을 사용하여 고유한 배열을 만듭니다.

Patricia Arquette
Patricia Arquette원래의
2024-10-19 06:21:30454검색

이 기사에서는 TypeDoc의 코드 참조에서 영감을 받아 JavaScript의 새로운 세트를 사용하여 고유한 배열을 생성하는 방법을 분석합니다.

Create a unique array using Set() in JavaScript.

먼저 위 이미지의 이 고유한 기능을 예제를 통해 이해한 다음 이것이 TypeDoc 소스 코드에서 어떻게 사용되는지 살펴보겠습니다.

독특한 기능

export function unique<T>(arr: Iterable<T> | undefined): T[] {
    return Array.from(new Set(arr));
}

이 함수는 typedoc/src/lib/utils/array.ts에서 선택되었습니다.

Array.from 정적 메서드는 반복 가능 객체 또는 유사 배열 객체에서 얕은 복사된 새로운 Array 인스턴스를 생성합니다.

Array.from()을 사용하면 다음에서 배열을 만들 수 있습니다.

  • 반복 가능한 객체(Map 및 Set과 같은 객체); 또는 객체가 반복 가능하지 않은 경우

  • 배열형 객체(길이 속성과 인덱스 요소가 있는 객체).

브라우저 콘솔에서 아래 코드를 실행하면 Set이 중복 값을 제거한다는 것을 금방 깨닫게 될 것입니다.

new Set([1,2,3,1,2,5,4,3,])
// result: Set(5) {1, 2, 3, 5, 4}

이 두 가지 개념을 결합하면 이제 새로운 Set()을 사용하여 간단하고 쉽게 고유한 배열을 만들 수 있습니다.

TypeDoc의 고유한 기능을 사용하는 방법

TypeDoc은 L366의 lib/application.ts로 고유한 기능을 가져옵니다.

이 Stackoverflow 답변에도 비슷한 접근 방식 제안이 있습니다.

const unique = (list) => {
  return [...new Set(list)];
}

Stackoverflow에서 선택되었으며 Array.from 메서드 대신 스프레드 연산자를 사용합니다.

회사 소개:

Think Throo에서는 오픈 소스 프로젝트에 사용되는 고급 코드베이스 아키텍처 개념을 가르치는 임무를 수행하고 있습니다.

Next.js/React에서 고급 아키텍처 개념을 연습하여 코딩 기술을 10배로 늘리고 모범 사례를 배우고 프로덕션급 프로젝트를 구축하세요.

우리는 오픈 소스입니다 — https://github.com/thinkthroo/thinkthroo(별표를 주세요!)

또한 웹 개발 및 기술 문서 작성 서비스도 제공합니다. 자세한 내용은 hello@thinkthroo.com으로 문의하세요!

참고자료:

  1. https://github.com/TypeStrong/typedoc/blob/master/src/lib/application.ts#L366

  2. https://github.com/TypeStrong/typedoc/blob/master/src/lib/utils/array.ts#L98C8-L100C2

  3. https://stackoverflow.com/questions/6940103/how-do-i-make-an-array-with-unique-elements-i-e-remove-duplicates

  4. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from



위 내용은 JavaScript에서 Set()을 사용하여 고유한 배열을 만듭니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.