Оператор in возвращает true, только если данное свойство присутствует в объекте или его прототипе.
Пример: объект
obj = {
a: 5
}
"a" in obj // true
"b" in obj // false
"toString" in obj // true, т.к toString есть в прототипе
Следующий пример иллюстрирует проверку индекса в массиве:
Пример: массив
arr = [ "a", "b", "c"]
1 in arr // true
22 in arr // false
delete arr[1]
1 in arr // false : элемент удален
Справа от оператора in должен находится объект, иначе интерпретатор сгенерирует ошибку TypeError.
'a' in "test" // TypeError
хотелось бы чего-то типа такого:
if ('myclass' in obj.className.split[' ']) return true; else return false;
или
return ('myclass' in obj.className.split[' ']);
вместо:
var r=false;
var c=obj.className.split(' ');
for (var i=0;i
var r=false; var c=obj.className.split(' '); for (var i=0;i<c.length;i++) if (c[i]=='myclass') r=true; return r;А есть ли возможность использовать in для быстрого поиска по перечислению?
К примеру, как в Python:
if myString in ("one", "two", "three"):
...
if ( ["one", "two", "three"].indexOf(myString) !== -1 ) { ... }
Отправить комментарий
Приветствуются комментарии:- Полезные.
- Дополняющие прочитанное.
- Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.Для остальных вопросов и обсуждений есть форум.