This page was translated from English by the community.Learn more and join the MDN Web Docs community.
TypeError: cannot use 'in' operator to search for 'x' in 'y'(не удаётся использовать 'in' оператор поиска для 'x' в 'y')
Сообщения
TypeError: недопустимый операнд в "in" (edge)TypeError: правая часть 'in' должна быть объектом, есть 'x' (Firefox)TypeError: невозможно использовать оператор 'in' для поиска 'x' в 'y' (Firefox, Chrome)
In this article
Тип ошибки
TypeErrorЧто пошло не так?
Оператор in можно использовать только для проверки наличия свойства в объекте. Вы не можете искать в строках, числах или других примитивных типах.
Примеры
>Поиск в строках
В отличие от других языков программирования (например, Python), поиск в строках с помощью оператора in невозможен.
js
"Hello" in "Hello World";// TypeError: cannot use 'in' operator to search for 'Hello' in 'Hello World'Вместо этого вам нужно будет использоватьString.prototype.indexOf()или примеры
js
"Hello World".indexOf("Hello") !== -1;// trueОперанд не может бытьnull илиundefined
Убедитесь, что объект, который вы осматриваете, на самом деле неnull илиundefined.
js
var foo = null;"bar" in foo;// TypeError: не удаётся использовать оператор 'in' для поиска 'bar' в 'foo' (Chrome)// TypeError: правая часть 'in' должна быть объектом, полученным null (Firefox)Оператор in всегда ожидает объект.
js
var foo = { baz: "bar" };"bar" in foo; // false"PI" in Math; // true"pi" in Math; // falseПоиск в Массивах
Будьте осторожны при использовании оператора для поискаArray объекты. thein оператор проверяет номер индекса, а не его значение.
js
var trees = ["redwood", "bay", "cedar", "oak", "maple"];3 in trees; // true"oak" in trees; // false