hasOwnProperty parece ser la solución popular, pero vale la pena señalar que sólo se ocupa de las cadenas y puede ser costoso llamar.
Si está utilizando objetos como claves en su Diccionario, hasOwnProperty no funcionará.
La solución más confiable y eficaz es utilizar igualdad estricta para comprobar si está indefinido.
function exists(key:*):Boolean {
return dictionary[key] !== undefined;
}
Recuerde utilizar igualdad estricta de lo contrario las entradas con un valor nulo, pero clave válida se verá es decir, vacío
null == undefined // true
null === undefined // false
Y, de hecho, como se ha mencionado el uso de in
debería funcionar bien también
function exists(key:*):Boolean {
return key in dictionary;
}
Gracias Cotton, nunca supe que el operador existía fuera de un bucle for-each. –
esto me hace feliz, es muy pitónico. – Soviut
¿Es la mejor solución desde la vista de rendimiento también? – Rihards