W CoffeeScript, jaki jest najprostszy sposób sprawdzenia, czy klucz istnieje w obiekcie?Najprostszy sposób sprawdzenia, czy klucz istnieje w obiekcie przy użyciu CoffeeScript
Odpowiedz
key of obj
To kompiluje się na key in obj
JavaScript. (Coffeescript wykorzystuje of
odnosząc się do kluczy i in
, odnosząc się do wartości tablicowych: val in arr
przetestuje czy val
jest w arr
.) Odpowiedź
thejh jest poprawna, jeśli chcesz zignorować prototyp obiektu. Odpowiedź Jimmy'ego jest poprawna, jeśli chcesz zignorować klucze o wartości null
lub undefined
.
obj.hasOwnProperty(name)
(ignorować właściwości dziedziczone)
Podoba mi się ta odpowiedź, ponieważ 'klucz z obj' rzuci błąd, jeśli wartość jest ciągiem lub liczbą. "Nie można użyć operatora" w "do wyszukiwania". W tym przypadku, jeśli obiekt nie jest niezdefiniowany i nie jest pusty, zadziała. – jqualls
Nie powiedzie się tam, gdzie obiekt ma wartość ze swojego prototypu. –
Znak "?" kontroli operatora dla istnienia:
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
Nie powiedzie się, jeśli klucz istnieje, ale ma wartość 'null'. –
@muistooshort Cóż, to denerwujące .. –
W przypadku, gdy nie interesuje nas klucz, ale jest pusty, to "obj.key?" Jest prawdopodobnie najbardziej zwięzły. –
- 1. Najlepszy sposób sprawdzenia, czy klucz istnieje w słowniku przed dodaniem?
- 2. Czy istnieje sposób sprawdzenia, czy tekst jest w cyrylicy lub łacińskim przy użyciu C#?
- 3. Java - Najszybszy sposób sprawdzenia, czy URL istnieje
- 4. Czy istnieje najprostszy sposób budowania pakietu perla?
- 5. Jak sprawdzić, czy mój klucz istnieje w obiekcie tablicy
- 6. pytoniczny sposób sprawdzenia, czy coś istnieje?
- 7. SparseArray, sprawdź czy klucz istnieje
- 8. Najprostszy sposób na zmianę nazwy modelu przy użyciu Django/South?
- 9. Czy istnieje sposób sprawdzenia, czy zmienna jest zdefiniowana w Javie?
- 10. Sposób sprawdzania, czy klucz obcy istnieje w SQL 2005
- 11. Właściwy sposób sprawdzenia konkretnej wartości .data() w obiekcie jQuery?
- 12. Czy istnieje sposób wdrożenia w VM VM przy użyciu Capistrano?
- 13. Czy istnieje lepszy sposób sprawdzenia, czy plik jest zapisywany?
- 14. Czy istnieje sposób sprawdzenia, czy wybór HTML jest obecnie otwarty?
- 15. Czy istnieje sposób sprawdzenia, czy komponent reagowania nie jest podłączony?
- 16. Czy istnieje sposób sprawdzenia, czy dwa elementy DOM są równe?
- 17. Czy istnieje sposób sprawdzenia, czy ReactElement renderuje wartość "null"?
- 18. Czy istnieje sposób sprawdzenia, czy odebrano transmisje LocalBroadcastManager?
- 19. Czy istnieje sposób sprawdzenia, ile powtórzeń wykonaliśmy w pętli for?
- 20. Jaki jest najlepszy sposób sprawdzenia, czy URL istnieje w PHP?
- 21. Czy istnieje właściwy sposób sprawdzenia istnienia pliku/katalogu w Javie?
- 22. Czy istnieje sposób sprawdzenia odziedziczonej właściwości CSS w kątomierzu?
- 23. Czy istnieje sposób sprawdzenia, czy próbka została skonfigurowana dla członka?
- 24. Czy istnieje sposób sprawdzenia, czy operacja OpenGL została zakończona?
- 25. Czy istnieje sposób sprawdzenia, czy element zakończył przejście CSS3?
- 26. Czy istnieje sposób sprawdzenia, czy zdefiniowano funkcję VBScript?
- 27. Czy istnieje sposób sprawdzenia, czy alarm jest już ustawiony?
- 28. Czy istnieje sposób sprawdzenia, czy wymuszono tryb ścisły?
- 29. Czy istnieje sposób sprawdzenia, czy istnieje wiele powiązań istnieje w Rails 3.1?
- 30. Sprawdź, czy klucz NSUserDefaults istnieje
Najprawdopodobniej "własny klucz z obiektu" działa również, aby testować automatycznie '.hasOwnProperty()'. "najprawdopodobniej" pochodzi ode mnie, nie próbowałem, ale ta składnia działa w zrozumieniu. –
@flyingsheep Nie, działa tylko ze zrozumieniem. Wypróbuj: http://coffeescript.org/#try:own%20key%20of%20obj –
ah, [ok] (https://github.com/jashkenas/coffee-script/issues/1019): 'own = (prop, obj) -> Object :: hasOwnProperty.call obj, prop' –