¿Cómo usar una array que incluya y verifique un objeto contra una propiedad de un objeto?

Método Array.includes(): en JavaScript, el método include() se usa para determinar si un elemento en particular está presente en una array o no. Devuelve verdadero si el elemento está presente y falso cuando está ausente.

Sintaxis:

array_name.includes(searchElement, ?fromIndex)

Parámetros:

  • searchElement: El elemento a buscar en la array.
  • fromIndex: el índice desde el que se buscará el elemento. Este es un parámetro opcional.

Ejemplo:

HTML

<!DOCTYPE html>
<html lang="en">
  
<body>
    <h2>
        Checking if the countries 
        array contains Japan --->
        <span id="ans"></span>
    </h2>
    <h2>
        Checking for Japan in the countries 
        array from index 2 --->
        <span id="ans2"></span>
    </h2>
  
    <script>
        let countries = ["India", "Japan", 
            "Canada", "Germany", "Australia"];
  
        // 1st Output
        let ans = document.querySelector("#ans");
        let output = countries.includes("Japan");
        ans.append(output);
  
        // 2nd Output 
        let ans2 = document.querySelector("#ans2");
        let output2 = countries.includes("Japan", 2);
        ans2.append(output2);
    </script>
</body>
  
</html>

Producción:

Comprobación de una propiedad en un objeto: para comprobar que un objeto contiene una propiedad en particular o no, tenemos 3 métodos para hacerlo:

1. Usando el operador in : Devuelve verdadero si la propiedad existe en el objeto y falso si no existe. Comprueba las propiedades propias y heredadas del objeto.

Sintaxis:

'property_name' in object_name

Ejemplo:

Javascript

<script>
let Person = {
    name: "durgesh",
    age: 16
}
  
// Output: true
console.log('name' in Person)
  
// Returns true for an inherited
// property
// Output: true
console.log('toString' in Person)
  
// Output: false
console.log('gender' in Person)
</script>

Producción:

true
true
false

Nota: El método toString() utilizado en el ejemplo anterior como una propiedad heredada del objeto prototipo . El operador ‘in’ devuelve verdadero para las propiedades heredadas del prototipo. 

Usando el método hasOwnProperty(): Devuelve verdadero si la propiedad existe en el objeto y falso si no existe. Comprueba solo las propiedades ‘propias’ ( las propiedades que se definen dentro del objeto ) del objeto.

Sintaxis:

object_name.hasOwnProperty('property_name')

Ejemplo:

Javascript

<script>
let Person = {
    name: 'Durgesh',
    age: 16
};
  
// Output: true
console.log(Person.hasOwnProperty('name'))
  
/* hasOwnProperty() doesn't checks for 
inherited properties of the object. */
/* toString() is an inherited property. */
// Output: false
console.log(Person.hasOwnProperty('toString'));
  
// Output: false
console.log(Person.hasOwnProperty('gender'));
</script>

Producción:

true
false 
false

Comparar con indefinido : evaluar una propiedad que no existe en un objeto da como resultado indefinido. Entonces podemos comparar el resultado con undefined para saber si una propiedad está presente o ausente. 

Ejemplo:

Javascript

<script>
let Person = {
    name: 'Durgesh',
    age: 16
};
  
// Returns true if the property is present
// Output: true
console.log(Person.name !== undefined)
  
// Returns true for inherited property
// Output: true
console.log(Person.toString !== undefined)
  
// Output: false
console.log(Person.gender !== undefined)
</script>

Producción:

true
true 
false

Nota: este es un enfoque desagradable en comparación con los dos anteriores porque, si una propiedad se define como indefinida en el objeto, este método la evalúa como falsa. Es recomendable utilizar los dos métodos anteriores si existe la posibilidad de que el valor de la propiedad de su objeto no esté definido.

Javascript

<script>
let Person = {
  
    // Setting name to undefined
    name: undefined,
    age: 16
};
  
/* This evaluates to false despite 
the fact that name property exists */
// Output: false
console.log(Person.name!==undefined)
</script>

Producción:

false

Publicación traducida automáticamente

Artículo escrito por durgeshpushpakar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *