recherche

Maison  >  Questions et réponses  >  le corps du texte

Comportement étrange de Map()

let key = [1,2]
 let m = new Map()
 m.set(key, "12")
 console.log(m.get(key))  // 12
 console.log(m.get([1,2]))  // undefined

Pourquoi quand je veux obtenir la valeur non pas par le nom de la variable clé mais par la valeur[1,2], cela n'existe pas Si vous ajoutez comme ça

m.set([1,2], "12")
 m.set([1,2], "123")
 m.set([1,2], "1234")

À propos de la carte

Map(4) { (2) […] → "12", (2) […] → "12", (2) […] → "123", (2) […] → "1234" }​
size: 4​
<entries>​​
0: Array [ 1, 2 ] → "12"​​
1: Array [ 1, 2 ] → "12"​​
2: Array [ 1, 2 ] → "123"​​
3: Array [ 1, 2 ] → "1234"

P粉221046425P粉221046425230 Il y a quelques jours451

répondre à tous(1)je répondrai

  • P粉680087550

    P粉6800875502024-04-04 13:33:56

    Utilisez === 运算符来比较密钥。数组是对象,=== 比较对象的引用,而不是它们的值。 [1, 2] === [1, 2] 返回 false car chaque littéral objet/tableau crée une nouvelle référence au nouvel objet. C'est la raison

    m.set([1,2], "12")
    m.set([1,2], "123")
    m.set([1,2], "1234")

    Insérez trois valeurs en utilisant trois clés différentes et pourquoi

    m.get([1,2])

    Retour undefined.

    répondre
    0
  • Annulerrépondre