hasOwnProperty кажется популярным решением, но стоит отметить, что она имеет дело только в строках и могут быть дорогими, чтобы позвонить.
Если вы используете объекты в качестве ключей в вашем словаре, hasOwnProperty не будет работать.
Более надежное и эффективное решение заключается в использовании строгого равенства для проверки на неопределенный.
function exists(key:*):Boolean {
return dictionary[key] !== undefined;
}
Не забывайте использовать строгое равенство в противном случае записи с нулевым значением, но правильный ключ будет выглядеть пустым IE
null == undefined // true
null === undefined // false
И на самом деле, как уже было упомянуто, используя in
должно работать слишком
function exists(key:*):Boolean {
return key in dictionary;
}
Спасибо Хлопок, я даже не знал, что оператор существует за пределами каждого цикла. –
это делает меня счастливым, его очень Pythonic. – Soviut
Является лучшим решением от представления производительности? – Rihards