ES6 맵에서 배열 객체를 키로 사용
P粉344355715
P粉344355715 2023-10-21 18:06:40
0
2
702

저는 Node 4.0을 사용하고 있고 지금까지의 기능이 정말 마음에 들어서 코드를 ES6으로 업데이트하려고 합니다. 하지만 새로운 ES6 Map 数据结构有问题,因为当使用 Array 作为键时,它的行为与 {}에서는 느낌이 달라졌습니다. 카운터 맵으로 사용하고 있습니다.

이 코드를 실행했는데 배열을 Map의 키로 사용하는 방법을 알고 싶습니다.

으아악

다음이 인쇄됩니다. 첫 번째 줄은 1 而不是 undefined:

이어야 합니다. 으아악

원래 JS 맵은 키를 문자열화하므로 새로운 ES6 Map에서는 동일한 유형의 문자열화 해킹을 수행하고 싶지 않습니다.

ES6 Map에서 배열을 키로 안정적으로 사용할 수 있는 방법은 무엇입니까?

P粉344355715
P粉344355715

모든 응답(2)
P粉529245050

키로 사용되는 Array의 비원시적 인스턴스에 대한 참조를 저장해야 합니다. 다음 두 가지 예의 차이점에 유의하세요.

으아악
P粉978551081

ES2015 맵 키가 === 运算符一样。两个数组实例,即使它们包含相同的值,也不会以 ===와 (거의) 서로 어떻게 비교되는지 이해하세요.

이것을 시도해 보세요:

으아아아

Map 클래스는 기본 클래스로 사용되기 때문에 재정의된 .get() 함수를 사용하여 하위 클래스를 구현할 수도 있습니다.

(첫 번째 문장의 "거의"는 Map 키 동등성 비교가 Object.is()를 통해 수행된다는 것을 반영하며 이는 일상적인 코딩에서는 거의 발생하지 않습니다. 기본적으로 JavaScript에서 동등성 테스트의 세 번째 변형입니다.)

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿