Modèle Javascript avec des valeurs par défaut (équivalent de Python's defaultdict)?

Duplication possible:
Définir une propriété javascript non définie avant de lire

Existe-t-il un équivalent de la version par défaut de Python en Javascript? Ce serait un tableau Javascript où la valeur renvoyée pour une clé manquante est définissable. Quelque chose comme:

var a = defaultArray("0"); console.log(a['dog']); // would print 0 

Sinon, comment l'implanteriez-vous?

Non, cela n'est pas possible en JavaScript. Btw, vous avez certainement voulu dire des Objets (propriété-valeur-cartes) au lieu de tableaux. Deux solutions:

  • Importez votre objet en tant que Proxy , conçu pour faire exactement ce que vous voulez. Pourtant, ce n'est qu'un projet et n'est actuellement pris en charge que dans Firefox 'Javascript 1.8.5 .

  • Utilisez une fonction getter avec un paramètre de chaîne au lieu des propriétés de l'objet. Cette fonction peut rechercher la clé d'entrée dans un objet "dictionnaire" interne, et la gestion des tâches s'effectue par programme, par exemple, créer des valeurs dynamiquement ou renvoyer des valeurs par défaut.

    Bien sûr, vous pouvez construire une usine pour de telles fonctions getter.

 function defaultDict(map, default) { return function(key) { if (key in map) return map[key]; if (typeof default == "function") return default(key); return default; }; } var a = defaultDict({cat: 1}, 0); console.log(a('cat')); // 1 console.log(a('dog')); // 0