질문: JavaScript에서는 세트의 동작을 에뮬레이트하는 데이터 구조를 생성하는 것이 가능합니다. 다음 기능:
이 세트와 같은 기능을 달성하는 가장 좋은 접근 방식은 무엇입니까? 속성을 저장하는 키와 값이 모두 true로 설정된 객체를 사용하는 것이 합리적인 해결책입니까?
답변:
ES6 환경에서는 다음을 활용할 수 있습니다. 원하는 모든 기능을 제공하는 내장 Set 객체.
ES5 이하의 경우:
객체 사용:
값을 나타내는 키와 항상 true로 설정된 값을 사용하여 객체를 생성하는 것은 간단한 작업에서는 작동할 수 있지만 제한이 있습니다. 예를 들어 좀 더 간결한 if(key in obj) 대신 if(obj[key])를 사용하여 진실성을 확인해야 합니다. 더욱이 이 접근 방식은 모든 키를 문자열로 강제 변환하므로 뚜렷하게 작동해야 하는 숫자 키와 문자열 키가 모두 있는 경우 문제가 됩니다.
다음 문제 중 일부를 해결하는 수정된 객체 기반 솔루션을 고려해 보세요.
// create empty object var obj = {}; // or create an object with some items already in it var obj = { "1": true, "2": true, "3": true, "9": true }; // Question 1: Is A in the list? if (Object.prototype.hasOwnProperty.call(obj, A)) // put code here // Question 2: Delete 'A' from the list if it's there delete obj[A]; // Question 3: Add 'A' to the list if it's not already there obj[A] = true;
사전 구축된 세트 객체:
기성 솔루션을 선호하는 경우 miniSet과 같은 사전 구축된 세트 객체나 기능이 더 풍부한 세트 객체를 활용할 수 있습니다. . 집합 작업을 수행하기 위한 간단한 인터페이스를 제공합니다.
ES6 집합 폴리필:
ES6 호환성을 위해 ES6 집합 폴리필과 같은 폴리필을 사용할 수 있습니다. 이를 통해 IE7 이전 환경에서 작동하는 ES6 호환 코드를 작성할 수 있지만 기본 ES6 Set 객체의 사용 편의성을 완전히 포착하지는 못합니다.
위 내용은 JavaScript에서 Set-Like 기능을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!