>  기사  >  웹 프론트엔드  >  ES6의 set-map 데이터 구조의 예에 대한 자세한 설명

ES6의 set-map 데이터 구조의 예에 대한 자세한 설명

零下一度
零下一度원래의
2017-06-26 09:12:311832검색

1. 데이터 구조 설정(new를 사용하여 집합 컬렉션을 만들고, add 메서드를 통해 요소를 추가하고, 크기를 통해 집합 컬렉션의 길이를 가져옵니다.) 직접 추가하면 배열이 전달됩니다)

{
  let list = new Set();
  list.add(5);
  list.add(7);

  console.log('size',list.size);
}
 
세트의 요소는 반복될 수 없습니다. (배열은 세트의 이 기능을 통해 중복 제거될 수 있습니다. 참고: 변환 프로세스 중에는 데이터 유형 변환이 수행되지 않습니다.)

{
  let arr = [1,2,3,4,5];
  let list = new Set(arr);

  console.log('size',list.size);
}
set 일부 메서드(추가, 삭제, 지우기, 있음)

 

{
  let list = new Set();
  list.add(1);
  list.add(2);
  list.add(1);//不会报错 只是不会生效

  console.log('list',list);

  let arr=[1,2,3,1,'2'];
  let list2=new Set(arr);

  console.log('unique',list2);
}

 set 순회(키와 값은 집합의 값을 반환)

{
  let arr=['add','delete','clear','has'];
  let list=new Set(arr);

  console.log('has',list.has('add'));//是否包含
  console.log('delete',list.delete('add'),list);//清空
  list.clear();
  console.log('list',list);
}
 
WeakSet(내부 요소는 객체만 될 수 있으며 추가된 객체가 다른 곳에서 참조되는지 여부를 감지하지 못합니다. 크기를 지우지 않으면 순회가 지원되지 않습니다.)

{
  let arr=['add','delete','clear','has'];
  let list=new Set(arr);  for(let key of list.keys()){
    console.log('keys',key);
  }  for(let value of list.values()){
    console.log('value',value);
  }  for(let [key,value] of list.entries()){
    console.log('entries',key,value);
  }

  list.forEach(function(item){console.log(item);})
}
2. 맵 데이터 구조(맵은 키/값으로 설정되므로 set 메소드로 설정하면 get 메소드를 사용하여 구함)

 

{
  let weakList=new WeakSet();

  let arg={};

  weakList.add(arg);  // weakList.add(2);
  console.log('weakList',weakList);
}

 Map을 정의하는 또 다른 방법 (동시에 size deleteclear 메소드도 동일)

{
  let map = new Map();
  let arr=['123'];

  map.set(arr,456);

  console.log('map',map,map.get(arr));
}

 WeakMap 데이터 구조 (setMap과 동일한 특성)

{
  let map = new Map([['a',123],['b',456]]);
  console.log('map args',map);
  console.log('size',map.size);
  console.log('delete',map.delete('a'),map);
  console.log('clear',map.clear(),map);
}
  

위 내용은 ES6의 set-map 데이터 구조의 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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