데이터 구조 Set 과 WeakSet

2518 단어 ES6
Set 은 ES6 가 제공 하 는 새로운 데이터 구조 로 배열 과 유사 하 며 가장 큰 차이 점 은 중복 되 는 값 이 없어 서 hin 을 제거 하 는 데 편리 하 다 는 것 이다. 먼저 밤 을 먹 자.
const a = new Set([1,1,2,3,4,5,6]);
console.log([...a]); //[1,2,3,4,5,6],    ,         1   
console.log(a.size); //6

        위 와 같이 무 거 운 so easy.그 밖 에 Set 도 간단 하고 편리 한 방법 을 제공 하여 우 리 는 위의 변 수 를 계속 사용 합 니 다.
a.add(6); //     ,  Set    
console.log(a.size); //6,         
a.add(7);
console.log(a.size); //7
a.delete(1); //true,     ,     
a.delete(1); //false,      ,      ,  false
a.has(1); //false,     ,      ,  false
a.has(2); //true,       ,  true
a.clear(); //  ,     
console.log(a.size); //0

    상기 네 가지 조작 방법 을 제외 하고 Set 에는 네 가지 옮 겨 다 니 는 방법 이 있 지만 Set 구조 에 키 이름 이 없고 키 값 만 있 기 때문에 다음 과 같은 상황 이 발생 했 습 니 다.
let b = new Set(['a','b','c']);
for (let i of b.keys()){
  console.log(i);
}
// a,keys()     
// b
// c
for (let i of b.values()){
  console.log(i);
}
// a,values()     
// b
// c
for (let i of b){
  console.log(i);
}
// a,  values  ,   for...of  
// b
// c
for (let i of b.entries()){
  console.log(i);
}
//['a','a'],    ,         
//['b','b']
//['c','c']
b.forEach((value,key) => console.log(key + ',' + value));
// a,a,         ,         
// b,b
// c,c

        하 나 를 들 면 열 을 제거 하 는 데 편리 한 것 을 제외 하고 set 는 배열 간 의 교 집합, 집합 과 차 집합 처 리 를 신속하게 실현 할 수 있 고 시간 이 제한 되 어 있 으 며 여 기 는 코드 를 붙 이지 않 습 니 다.
2018 년 10 월 26 일 업데이트
        오늘 의 업무 논리 에 서 는 두 배열 의 차 집 을 구 하 는 데 사용 되 었 으 므 로, 즉시 코드 를 보충 하여 모두 가 참고 하도록 제공 하 였 다.
let a=new Set([1,2,3]);
let b=new Set([2,3]);
let diff=new Set([...a].filter(x=>!b.has(x)));

        Set 를 사용 하여 필요 한 작업 을 마 친 후 배열 작업 을 계속 하려 면 Set 를 다시 배열 로 변환 해 야 합 니 다.
Array.from(diff);    //[1]

2020 년 3 월 29 일 업데이트
      시간 이 너무 빨리 지나 서 눈 깜짝 할 사이 에 1 년 반 의 시간 이 또 지나 갔다.오늘 은 WeakSet 과 Set 의 차 이 를 보충 해 보 겠 습 니 다.WeakSet 는 Set 와 유사 하고 중복 되 지 않 는 값 의 집합 입 니 다. 다음 과 같은 몇 가지 차이 가 있 습 니 다.
1. Weak Set 의 구성원 은 대상 일 수 있 고 다른 데이터 형식 일 수 없 으 며 그렇지 않 으 면 잘못 보고 할 수 있 습 니 다.
2. Weak Set 의 구성원 들 은 모두 약 한 인용 으로 대상 의 다른 인용 이 삭제 되면 쓰레기 회수 체 제 는 해당 대상 이 사용 하 는 메모 리 를 방출 하여 메모리 누 출 을 피한다.
3. WeakSet 의 구성원 은 수시로 쓰레기 수 거 메커니즘 에 의 해 수 거 될 수 있 고 구성원 의 수량 이 불안정 하기 때문에 size 속성 이 없습니다.
4. clear () 방법 이 없습니다.
5. 옮 겨 다 닐 수 없다

좋은 웹페이지 즐겨찾기