[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Errors/in_operator_no_object [Back]  [Original]

TypeError: invalid 'in' operand "x" - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

TypeError: invalid 'in' operand "x"

Message

TypeError: Invalid operand to 'in' (Edge)
TypeError: right-hand side of 'in' should be an object, got 'x' (Firefox)
TypeError: cannot use 'in' operator to search for 'x' in 'y' (Firefox, Chrome)

Dans cet article

Type d'erreur

TypeError

Quel est le problme ?

L'oprateur in peut uniquement tre utilis pour vrifier qu'une proprit appartient un objet. Il ne peut pas tre utilis pour rechercher des caractres dans des chanes de caractres, des nombres ou dans d'autres types de donnes en dehors des objets.

Exemples

Rechercher un texte dans une chane de caractres

la diffrence de certains langages de programmation (Python par exemple), JavaScript ne permet pas de chercher des textes dans une chane de caractres grce l'oprateur in.

js
"Coucou" in "Coucou monde";
// TypeError: cannot use 'in' operator to search for 'Coucou' in 'Coucou monde'

On utilisera plutt la mthode String.prototype.indexOf() :

js
"Coucou monde".indexOf("Coucou") !== -1;
// true

null ou undefined ne fonctionnent pas

Avant d'utiliser in, il faut s'assurer que la valeur qu'on inspecte n'est pas null ou undefined.

js
var toto = null;
"truc" in toto;
// TypeError: cannot use 'in' operator to search for 'truc' in 'toto" (Chrome)
// TypeError: right-hand side of 'in' should be an object, got null (Firefox)

L'oprateur in doit tre utilis avec un objet.

js
var toto = { machin: "bidule" };
"truc" in toto; // false

"PI" in Math; // true
"pi" in Math; // false

Rechercher dans un tableau

Attention lorsqu'on utilise l'oprateur in quand on recherche une valeur dans un objet Array. L'oprateur in vrifie la prsence de l'index mais pas la valeur prsente cet index.

js
var arbres = ["cdre", "bouleau", "pin", "sapin", "rable"];
3 in arbres; // true
"pin" in arbres; // false

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page