hasOwnProperty sembra essere la soluzione popolare, ma vale la pena sottolineare che si tratta solo nelle stringhe e può essere costoso per chiamare.
Se stai usando oggetti come chiavi nel tuo dizionario hasOwnProperty non funzionerà.
La soluzione più affidabile e performante consiste nell'utilizzare l'uguaglianza rigorosa per verificare l'indefinito.
function exists(key:*):Boolean {
return dictionary[key] !== undefined;
}
Ricordate di usare uguaglianza rigorosa altrimenti le voci con un valore nullo, ma chiave valida guarderà cioè vuoto
null == undefined // true
null === undefined // false
E in realtà, come è stato detto con in
dovrebbe funzionare bene anche
function exists(key:*):Boolean {
return key in dictionary;
}
fonte
2013-04-09 06:21:51
Grazie Cotton, non ho mai nemmeno saputo che quell'operatore esistesse al di fuori di un ciclo for-each. –
questo mi rende felice, è molto Pythonic. – Soviut
È la soluzione migliore anche dalla visualizzazione prestazioni? – Rihards