En CoffeeScript, ¿cuál es la forma más sencilla de comprobar si existe una clave en un objeto?Manera más sencilla de verificar si existe una clave en el objeto utilizando CoffeeScript
(propiedades de ignorar heredadas)Respuesta
key of obj
Esto compila a JavaScript de key in obj
. (CoffeeScript utiliza of
cuando se refiere a las llaves, y in
cuando se hace referencia a los valores de la matriz: val in arr
pondrá a prueba si es val
en arr
.) Respuesta
de thejh es correcta si desea ignorar prototipo del objeto. La respuesta de Jimmy es correcta si desea ignorar las claves con un valor null
o undefined
.
obj.hasOwnProperty(name)
Me gusta esta respuesta porque 'key of obj' arrojará un error si el valor es una cadena o un número. 'No se puede usar el operador 'in' para buscar'. En este caso, si el objeto no está indefinido y no es nulo, funcionará. – jqualls
Esto falla donde el objeto tiene el valor de su prototipo. –
El '?' el operador comprueba la existencia:
if obj?
# object is not undefined or null
if obj.key?
# obj.key is not undefined or null
# call function if it exists
obj.funcKey?()
# chain existence checks, returns undefined if failure at any level
grandChildVal = obj.key?.childKey?.grandChildKey
# chain existence checks with function, returns undefined if failure at any level
grandChildVal = obj.key?.childKey?().grandChildKey
Esto falla si la clave está allí, pero tiene el valor 'null'. –
@muistooshort Bueno, eso es molesto. –
En el caso donde uno no se preocupa por la clave existente pero es nula, entonces 'obj.key?' Es probablemente la más concisa. –
- 1. La forma más rápida de verificar si existe un objeto
- 2. ¿Cómo verificar si existe una clave appSettings?
- 3. C manera más rápida de verificar si existe un directorio
- 4. ¿La mejor manera de verificar si existe un objeto PowerShell?
- 5. Cómo verificar si la clave existe en el almacén de datos sin devolver el objeto
- 6. ¿Existe alguna manera más rápida de verificar si existe una página web externa?
- 7. ¿Cómo puedo verificar si una clave del paquete de recursos no existe utilizando etiquetas JSTL?
- 8. ¿Cómo verificar si existe una clave en ** kwargs?
- 9. Python es la mejor manera de verificar si existe una clave
- 10. Comprobar si el objeto miembro existe en el objeto anidado
- 11. manera pitonica para verificar si algo existe?
- 12. ¿La mejor manera de verificar si el objeto existe en Entity Framework?
- 13. ¿Una forma más sencilla de verificar los parámetros?
- 14. ¿Existe alguna manera más rápida de verificar si esta es una fecha válida?
- 15. ¿La forma más rápida de verificar si un objeto existe en Core Data o no?
- 16. Comprobando si existe una clave de registro
- 17. ¿Existe una manera sencilla de registrar los métodos que se invocan sobre un objeto en Ruby?
- 18. Hibernar: compruebe si existe el objeto
- 19. Manera más sencilla para ordenar la lista de objetos
- 20. JS ¿Hay alguna manera de verificar si existe un evento?
- 21. para (var clave en el objeto) en CoffeeScript?
- 22. manera más sencilla de clasificar tres números
- 23. ¿Deberíamos verificar si el elemento existe antes de asignar eventos?
- 24. ¿cuál es la mejor manera de verificar si existe un objeto S3?
- 25. Comprobar si existe una clave en Memcache
- 26. ¿Manera pitónica de verificar si existe un archivo?
- 27. cómo comprobar si el objeto ya existe en una lista
- 28. ¿Cómo verificar si existe una restricción en el servidor Sql?
- 29. Drupal 7: la manera más rápida de verificar si existe la entrada de db
- 30. compruebe si el objeto existe en Cloud Files (PHP API)
muy probablemente 'own key of obj' funciona, también, para probar' .hasOwnProperty() '. lo "más probable" proviene de que no lo he intentado, pero esta sintaxis funciona en las comprensiones. –
@flyingsheep No, solo funciona en comprensión. Pruébalo: http://coffeescript.org/#try:own%20key%20of%20obj –
ah, [ok] (https://github.com/jashkenas/coffee-script/issues/1019): 'own = (prop, obj) -> Objeto :: hasOwnProperty.call obj, prop' –