hasOwnProperty wydaje się być popularnym rozwiązaniem, ale warto zwrócić uwagę, że dotyczy on wyłącznie w ciągach znaków i może być drogie, aby zadzwonić.
Jeśli używasz obiektów jako kluczy w Słowniku hasOwnProperty nie będzie działać.
Bardziej niezawodnym i wydajnym rozwiązaniem jest użycie ścisłej równości do sprawdzenia niezdefiniowanej.
function exists(key:*):Boolean {
return dictionary[key] !== undefined;
}
Pamiętaj, aby używać ścisłej równości inaczej wpisy z wartością null, ale ważnym kluczem będzie wyglądać pusty IE
null == undefined // true
null === undefined // false
I rzeczywiście, jak już wspomniano przy użyciu in
powinno zadziałać zbyt
function exists(key:*):Boolean {
return key in dictionary;
}
Dzięki Cotton, nigdy nie wiedziałem, że operator istnieje poza pętlą. –
to mnie uszczęśliwia, jest bardzo Pythonic. – Soviut
Czy to najlepsze rozwiązanie z widoku wydajności? – Rihards