not in operador en JavaScript
Los objetos son propiedades clave-valor que se utilizan con más frecuencia en JavaScript. Para comprobar si una determinada propiedad existe o no, JavaScript ofrece varias posibilidades. La publicación de hoy le mostrará cómo verificar si una propiedad particular existe o no en un objeto en JavaScript.
Comprobar que la propiedad existe o no en JavaScript
Las propiedades se emparejan con el valor clave almacenado en un objeto. Un objeto
puede contener muchas de estas propiedades. El operador id in object
o Object.prototype.hasOwnProperty()
determina si una determinada propiedad existe o no en JavaScript.
Object.prototype.hasOwnProperty()
en JavaScript
Este es un método integrado proporcionado por JavaScript para verificar si la propiedad especificada pertenece a un Objeto o no. Repite el objeto y devuelve el valor booleano de acuerdo con el resultado.
Sintaxis:
Object.prototype.hasOwnProperty(prop);
Esta función toma prop
como entrada en el formato string
. Es un parámetro obligatorio. Este método solo verifica si la propiedad dada existe o no en el objeto independientemente del valor. Devolverá true
incluso si el valor de la propiedad es null
o undefined
. Este método también se puede llamar en un Array
ya que el array desciende de un objeto. Para obtener más información, lea la documentación del método hasOwnProperty()
.
const inputObject = {
id: 42,
name: 'John Doe'
};
console.log(inputObject.hasOwnProperty('name'));
if (!inputObject.hasOwnProperty('email')) {
inputObject.email = 'Johndoe@gmail.com';
}
console.log(inputObject);
En el bloque de código anterior, definimos dos propiedades de un objeto id
y name
. Cuando pase inputObject.hasOwnProperty('name')
, comprobará si la propiedad name existe o no en inputObject
. Si desea que se verifique la condición opuesta, agregue !
antes de la condición, y negará el cheque. Por ejemplo, puede agregar una nueva propiedad si no existe dentro de un objeto. La salida dada por el código anterior se puede ver a continuación.
Producción :
true
{
email: "Johndoe@gmail.com",
id: 42,
name: "John Doe"
}
El operador in
en JavaScript
Es un método incorporado proporcionado por JavaScript, que verifica si un objeto o cadena de prototipos posee la propiedad especificada. Repite el objeto y devuelve el valor booleano de acuerdo con el resultado.
Sintaxis:
prop in object
Esta función toma prop
como entrada en el formato string
. Es un parámetro obligatorio. Este método sólo comprueba si la propiedad dada o el índice del array existe o no en Objeto
o en su cadena de prototipos
. Este método también se puede llamar en un Array
ya que el array desciende de un objeto. Para obtener más información, lea la documentación del método operador in
.
La principal diferencia entre el operador hasOwnProperty
y in
es que el anterior devuelve falso si la propiedad se hereda dentro del objeto o no ha sido declarada. En comparación, el operador in
no comprueba la propiedad especificada en la cadena de prototipos del objeto. Por ejemplo, la clase base Objeto
tiene hasOwnProperty
como función, por lo que hasOwnProperty
devolverá false
mientras que el operador in
devolverá true
.
const inputObject = {
id: 42,
name: 'John Doe'
};
console.log('name' in inputObject);
if (!('phone' in inputObject)) {
inputObject.phone = '7878787878';
}
console.log(inputObject);
En el bloque de código anterior, definimos dos propiedades de un objeto id
y name
. Cuando pasa 'nombre' en inputObject
, comprobará si la propiedad del nombre existe en inputObject
. Si desea que se verifique la condición opuesta, agregue !
antes de la condición, negando el cheque. Por ejemplo, puede agregar una nueva propiedad, phone
, si no existe dentro de un objeto. La salida proporcionada por el fragmento de código anterior se ve a continuación.
Producción :
true
{
id: 42,
name: "John Doe",
phone: "7878787878"
}
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn