찾다

 >  Q&A  >  본문

ES6 맵에서 배열 객체를 키로 사용

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

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

으아악

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

이어야 합니다. 으아악

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

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

P粉344355715P粉344355715401일 전690

모든 응답(2)나는 대답할 것이다

  • P粉529245050

    P粉5292450502023-10-22 13:33:57

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

    으아악

    회신하다
    0
  • P粉978551081

    P粉9785510812023-10-22 11:23:32

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

    이것을 시도해 보세요:

    으아아아

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

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

    회신하다
    0
  • 취소회신하다