El operador in devuelve true si la propiedad especificada está en el objeto especificado o su prototipo.

Sintaxis

prop in object

Parámetros

prop
Una cadena o expresión númerica que representa el nombre de una propiedad o el índice de un array (lo que no sea un símbolo se forzará a string).
object
El objeto (o su cadena de prototipo) sobre el que comprobar si contiene la propiedad con el nombre especificado.

Descripción

Los siguientes ejemplos muestran algunos de los usos del operador in.

// Arrays
var arboles = new Array("secoya", "pino", "cedro", "roble", "arce");
0 in arboles        // devuelve true
3 in arboles        // devuelve true
6 in arboles        // devuelve false
"pino" in arboles   // devuelve false (debe especificar el número de índice,
                    // no el valor del índice)
"length" in arboles // devuelve true (length es una propiedad de Array)

// Objetos predefinidos
"PI" in Math        // devuelve true

// Objetos personalizados
var micoche = {marca: "Honda", modelo: "Accord", año: 1998};
"marca" in micoche  // devuelve true
"modelo" in micoche // devuelve true

Debe especificar un objeto en el lado derecho del operador in. Por ejemplo, puede especificar una cadena creada con el constructor String , pero no puede especificar una cadena literal.

var color1 = new String("verde");
"length" in color1 // devuelve true

var color2 = "coral";
"length" in color2 // genera un error (color2 no es un objeto String)

Usando in con propiedades eliminadas o no definidas

Si se elimina una propiedad con el operador delete, el operador in devuelve false para esa propiedad.

var micoche= {marca: "Honda", modelo: "Accord", año: 1998};
delete micoche.marca;
"marca" in micoche;  // devuelve false

var arboles = new Array("secoya", "pino", "cedro", "roble", "arce");
delete arboles[3];
3 in arboles; // devuelve false

Si se cambia una propiedad a undefined pero no se elimina, el operador in devuelve true para esa propiedad.

var micoche = {marca: "Honda", modelo: "Accord", año: 1998};
micoche.marca = undefined;
"marca" in micoche;  // devuelve true
var arboles = new Array("secayo", "pino", "cedro", "roble", "arce");
arboles[3] = undefined;
3 in arboles; // devuelve true

Propiedades heredadas

El operador in devuelve true para propiedades en la cadena del prototipo.

"toString" in {}; // devuelve true

Especificaciones

Especificación Estado Comentario
ECMAScript Latest Draft (ECMA-262)
La definición de 'Relational Operators' en esta especificación.
Draft  
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'Relational Operators' en esta especificación.
Standard  
ECMAScript 5.1 (ECMA-262)
La definición de 'The in Operator' en esta especificación.
Standard  
ECMAScript 3rd Edition (ECMA-262)
La definición de 'The in Operator' en esta especificación.
Standard Definición inicial. Implementado en JavaScript 1.4.

Compatibilidad en navegadores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Soporte básicoChrome Soporte completo SiEdge Soporte completo SiFirefox Soporte completo 1IE Soporte completo SiOpera Soporte completo SiSafari Soporte completo SiWebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile Soporte completo SiFirefox Android Soporte completo 4Opera Android Soporte completo SiSafari iOS Soporte completo SiSamsung Internet Android Soporte completo Sinodejs Soporte completo Si

Leyenda

Soporte completo  
Soporte completo

Vea también

Etiquetas y colaboradores del documento

Colaboradores en esta página: AlePerez92, MMarinero, SphinxKnight, teoli, carloshs92
Última actualización por: AlePerez92,