es6 세트의 용도는 무엇입니까?
Set은 순서가 지정된 데이터를 저장하는 데 사용되는 데이터 구조입니다. Set의 요소는 고유하며 동일한 요소를 저장할 수 없습니다. Set()은 반복 가능한 개체를 매개 변수로 허용할 수 있지만 이 반복 가능한 개체는 동일한 콘텐츠입니다. 제거되므로 중복 요소를 제거하고 "Array.from(new Set(arr))" 또는 "[...new Set(arr)]"을 방지하는 데 사용할 수 있습니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, ECMAScript 버전 6, Dell G3 컴퓨터.
1. 기본 사용법
Set
은 ES6
에서 제공하는 새로운 데이터 구조로 배열처럼 정렬된 데이터를 저장하는 데 사용됩니다. 즉, 배열처럼 인덱싱을 통해 특정 요소를 얻을 수 없습니다. Set
是 ES6
提供的一种新的数据结构,它跟数组一样用于存储有序的数据,但是没有随机访问的能力,也就是说,不能像数组一样通过索引来获取具体的某个元素。除此以外,最重要的是,Set
中的元素具有唯一性,不允许存储相同的元素!
Set
是一个构造函数,用于实例化实例:
let set = new Set() set.add(1)//往set集合中添加元素1
除此以外,Set()
可以接受一个可迭代对象作为参数,以作为实例初始化的数据,但是会将这个可迭代对象中相同的内容去除,然而,这也是数组去重的一个方法。
let set = new Set([1,2,2,1,4,3,5]) console.log(set)//Set(5) {1, 2, 4, 3, 5}
由元素唯一性这个特点,可以利用在数组去重上:
//方法一: Array.from(new Set(arr)) //arr是待去重的数组 //方法二: [...new Set(arr)]
太酷了吧,类似的,利用这个特性还能实现字符串相同字符的去重。
[...new Set(str)].join('')
然而,上面都是通过 Set
类型元素的唯一性来实现的,那么 Set
内部是如何判断元素是否唯一的呢?它的内部使用了一个算法 Same-value-zero equality
,大致与全等运算符一致,区别在于这种算法认为 NaN
等于 NaN
。
二、实例属性和方法
实例属性
在 Set.prototype
上,定义了一个属性 size
表示元素的个数。
let set = new Set([1,2,2,1,4,3,5]) console.log(set.size)//5
实例方法
Set
实例的方法可以分为两类:操作方法和遍历方法。
1.操作方法
Set.prototype.add(value)
—— 添加某个值到Set
的末尾,返回Set
本身。Set.prototype.delete(value)
—— 删除某个值,返回布尔值,表示是否删除成功。Set.prototype.has(value)
—— 返回一个布尔值,表示该值是否为Set
的元素。Set.prototype.clear()
—— 清除所有成员,没有返回值。
值得一提的是,add()
方法的返回是 Set
本身,所以你应该能想到链式调用:
let set = new Set() set.add(1).add(2).add(3)
2.遍历方法
Set.prototype.keys()
—— 返回键名的遍历器Set.prototype.values()
—— 返回键值的遍历器Set.prototype.entries()
—— 返回键值对的遍历器Set.prototype.forEach()
—— 使用回调函数遍历元素
由于 Set
结构没有键名,只有键值(或者说键名和键值是同一个值),所以 keys
方法和 values
方法的行为完全一致。
三、WeakSet
WeakSet
是 Set
的升级版,主要有两个区别:
WeakSet
只能存储引用类型,不能储存基本类型数据。WeakSet
中的引用类型都是弱引用。
首先,第一点很好理解,就是不能存储基本类型的数据:
const ws = new WeakSet() ws.add(1)//报错,Invalid value used in weak set
然后第二点,WeakSet
中的对象都是弱引用。也就意味着垃圾回收机制不会考虑 WeakSet
对该对象的引用,一旦在外部引用计数为0,那么就等着被垃圾回收机制处理。所以,WeakSet
适合临时存放一组对象。
由于这个特征,WeakSet
中的成员是不适合引用的,因为它很可能会随时被清理,然而,ES6
规定它是不可遍历的。
WeakSet
中的方法也跟上面提到的 Set
基本一致,但是它没有 size
또한 가장 중요한 것은 Set
의 요소는 고유하며 동일한 요소가 저장될 수 없다는 것입니다!
Set
는 인스턴스를 인스턴스화하는 데 사용되는 생성자입니다. rrreee또한 Set()
는 반복 가능한 객체를 매개변수, 인스턴스 초기화 데이터로 받아들일 수 있습니다. 하지만 이 반복 가능한 객체의 동일한 콘텐츠는 제거됩니다. 그러나 이는 배열 중복 제거 방법이기도 합니다. rrreee
Set
유형 요소의 고유성을 통해 달성되는데, Set
는 요소가 고유한지 내부적으로 어떻게 결정합니까? 내부적으로는 합동 연산자와 거의 동일한 Same-value-zero 동등성
알고리즘을 사용합니다. 차이점은 이 알고리즘은 NaN
을 와 동일하다고 간주한다는 것입니다. >NaN 코드>. 🎜🎜🎜2. 인스턴스 속성 및 메소드🎜🎜<h3 id="인스턴스-속성">🎜인스턴스 속성🎜</h3>🎜<code>Set.prototype
에서는 size
속성이 정의되어 있습니다. 요소 번호. 🎜rrreee🎜인스턴스 메서드🎜
🎜Set
인스턴스 메서드는 작업 메서드와 순회 메서드의 두 가지 범주로 나눌 수 있습니다. 🎜🎜1. 작업 방법🎜
-
Set.prototype.add(value)
-Set
에 값을 추가합니다.Set
자체의 끝입니다. -
Set.prototype.delete(value)
- 값을 삭제하고 삭제 성공 여부를 나타내는 부울 값을 반환합니다. -
Set.prototype.has(value)
- 값이Set
의 요소인지 여부를 나타내는 부울 값을 반환합니다. -
Set.prototype.clear()
- 모든 멤버를 지우고 반환 값은 없습니다.
add()
메서드의 반환이 Set
자체라는 점을 언급할 가치가 있으므로 체인 호출을 생각할 수 있어야 합니다. : 🎜rrreee 🎜2. 탐색 방법🎜
-
Set.prototype.keys()
- 키 이름의 탐색자를 반환합니다. -
Set.prototype.values()
- 키-값 쌍의 순회자를 반환합니다. -
Set.prototype.entries()
- 키의 순회자를 반환합니다. -값 쌍 -
Set.prototype.forEach()
—— 콜백 함수를 사용하여 요소를 순회합니다.
Set
구조에는 키 이름이 없고 키 값만 있습니다(또는 키 이름과 키 값이 동일한 값임). 따라서 keys
메소드는 values
와 정확히 동일하게 작동합니다. > 방법. 🎜🎜🎜3. WeakSet
🎜🎜🎜WeakSet
은 Set
의 업그레이드 버전입니다. 🎜-
WeakSet
는 기본 유형 데이터가 아닌 참조 유형만 저장할 수 있습니다. -
WeakSet
의 참조 유형은 모두 약한 참조입니다.
WeakSet
의 개체입니다. > 모두 약한 참조입니다. 이는 가비지 수집 메커니즘이 개체에 대한 WeakSet
의 참조를 고려하지 않음을 의미합니다. 외부 참조 수가 0에 도달하면 가비지 수집 메커니즘에 의해 처리될 때까지 기다립니다. 따라서 WeakSet
은 개체 그룹을 임시로 저장하는 데 적합합니다. 🎜🎜이 기능으로 인해 WeakSet
의 멤버는 언제든지 정리될 가능성이 있으므로 참조에 적합하지 않습니다. 그러나 ES6
에서는 통과할 수 없다고 규정합니다. . 🎜🎜 WeakSet
의 메서드는 위에서 언급한 Set
와 기본적으로 동일하지만, size
속성과 traverser 메서드가 없습니다. 🎜🎜【관련 추천: 🎜javascript 비디오 튜토리얼🎜, 🎜프로그래밍 비디오🎜】🎜위 내용은 es6 세트의 용도는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











WebSocket 및 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 소개: 지속적인 기술 개발로 음성 인식 기술은 인공 지능 분야의 중요한 부분이 되었습니다. WebSocket과 JavaScript를 기반으로 한 온라인 음성 인식 시스템은 낮은 대기 시간, 실시간, 크로스 플랫폼이라는 특징을 갖고 있으며 널리 사용되는 솔루션이 되었습니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법을 소개합니다.

WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 소개: 인터넷의 대중화와 기술의 발전으로 점점 더 많은 레스토랑에서 온라인 주문 서비스를 제공하기 시작했습니다. 실시간 온라인 주문 시스템을 구현하기 위해 JavaScript 및 WebSocket 기술을 사용할 수 있습니다. WebSocket은 TCP 프로토콜을 기반으로 하는 전이중 통신 프로토콜로 클라이언트와 서버 간의 실시간 양방향 통신을 실현할 수 있습니다. 실시간 온라인 주문 시스템에서는 사용자가 요리를 선택하고 주문을 하면

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 오늘날의 디지털 시대에는 점점 더 많은 기업과 서비스에서 온라인 예약 기능을 제공해야 합니다. 효율적인 실시간 온라인 예약 시스템을 구현하는 것이 중요합니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. WebSocket이란 무엇입니까? WebSocket은 단일 TCP 연결의 전이중 방식입니다.

JavaScript 및 WebSocket: 효율적인 실시간 일기 예보 시스템 구축 소개: 오늘날 일기 예보의 정확성은 일상 생활과 의사 결정에 매우 중요합니다. 기술이 발전함에 따라 우리는 날씨 데이터를 실시간으로 획득함으로써 보다 정확하고 신뢰할 수 있는 일기예보를 제공할 수 있습니다. 이 기사에서는 JavaScript 및 WebSocket 기술을 사용하여 효율적인 실시간 일기 예보 시스템을 구축하는 방법을 알아봅니다. 이 문서에서는 특정 코드 예제를 통해 구현 프로세스를 보여줍니다. 우리

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

사용법: JavaScript에서 insertBefore() 메서드는 DOM 트리에 새 노드를 삽입하는 데 사용됩니다. 이 방법에는 삽입할 새 노드와 참조 노드(즉, 새 노드가 삽입될 노드)라는 두 가지 매개 변수가 필요합니다.

JavaScript에서 HTTP 상태 코드를 얻는 방법 소개: 프런트 엔드 개발에서 우리는 종종 백엔드 인터페이스와의 상호 작용을 처리해야 하며 HTTP 상태 코드는 매우 중요한 부분입니다. HTTP 상태 코드를 이해하고 얻는 것은 인터페이스에서 반환된 데이터를 더 잘 처리하는 데 도움이 됩니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. HTTP 상태 코드란 무엇입니까? HTTP 상태 코드는 브라우저가 서버에 요청을 시작할 때 서비스가
