Dados dos objetos obj1 y obj2 , la tarea es verificar que obj1 contenga todos los valores de propiedad de obj2 en JavaScript.
Input: obj1: { name: "John", age: 23; degree: "CS" } obj2: {age: 23, degree: "CS"} Output: true Input: obj1: { name: "John", degree: "CS" } obj2: {name: "Max", age: 23, degree: "CS"} Output: false
Para resolver este problema seguimos los siguientes enfoques.
Enfoque 1: Es un enfoque ingenuo para resolver este problema. En este enfoque, iteramos el obj2 usando el ciclo for..in y en cada iteración, verificamos que la clave actual de ambos objetos no sea igual, devolvemos false ; de lo contrario, después de completar el ciclo, devolvemos true .
Ejemplo:
Javascript
<script> // Define the first object let obj1 = { name: "John", age: 23, degree: "CS" } // Define the second object let obj2 = { age: 23, degree: "CS" } // Define the function check function check(obj1, obj2) { // Iterate the obj2 using for..in for (key in obj2) { // Check if both objects do // not have the equal values // of same key if (obj1[key] !== obj2[key]) { return false; } } return true } // Call the function console.log(check(obj1, obj2)) </script>
Producción:
true
Enfoque 2: en este enfoque, creamos una array de todas las claves de obj2 usando el método Object.keys() y luego usando el método Array.every() comprobamos si todas las propiedades de obj2 son iguales a obj1 o no. .
Ejemplo:
Javascript
<script> // Define the first object let obj1 = { name: "John", age: 23, degree: "CS" } // Define the Second object let obj2 = { age: 23, degree: "CS" } // Define the function check function check(obj1, obj2) { return Object // Get all the keys in array .keys(obj2) .every(val => obj1.hasOwnProperty(val) && obj1[val] === obj2[val]) } // Call the function console.log(check(obj1, obj2)) </script>
Producción:
true
Publicación traducida automáticamente
Artículo escrito por _saurabh_jaiswal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA