Files
freeCodeCamp/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-data-structures/check-if-an-object-has-a-property.md
2021-03-16 07:41:19 -07:00

3.0 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7b7d367417b2b2512b1c Evalúa si un objeto tiene una propiedad 1 301155 check-if-an-object-has-a-property

--description--

Ahora podemos agregar, modificar y eliminar claves de los objetos. Pero, ¿y si sólo queremos saber si un objeto tiene una propiedad específica? JavaScript nos proporciona dos maneras diferentes de hacerlo. Uno utiliza el método hasOwnProperty() y el otro utiliza la palabra clave in. Si tenemos un objeto users con una propiedad de Alan, podríamos comprobar su presencia de cualquiera de las siguientes maneras:

users.hasOwnProperty('Alan');
'Alan' in users;

Ambos devuelven true.

--instructions--

Hemos creado un objeto, users, con algunos usuarios en él y una función isEveryoneHere, a la que pasamos el objeto users como argumento. Termina de escribir esta función para que devuelva true solo si el objeto users contiene los cuatro nombres, Alan, Jeff, Sarah y Ryan, como claves, y falseen caso contrario.

--hints--

El objeto users sólo debe contener las claves Alan, Jeff, Sarah y Ryan

assert(
  'Alan' in users &&
    'Jeff' in users &&
    'Sarah' in users &&
    'Ryan' in users &&
    Object.keys(users).length === 4
);

La función isEveryoneHere debe devolver true si Alan, Jeff, Sarah, y Ryan son propiedades del objeto users

assert(isEveryoneHere(users) === true);

La función isEveryoneHere debe devolver false si Alan no es una propiedad del objeto users

assert(
  (function () {
    delete users.Alan;
    return isEveryoneHere(users);
  })() === false
);

La función isEveryoneHere debe devolver false si Jeff no es una propiedad del objeto users

assert(
  (function () {
    delete users.Jeff;
    return isEveryoneHere(users);
  })() === false
);

La función isEveryoneHere debe devolver false si Sarah no es una propiedad del objeto users

assert(
  (function () {
    delete users.Sarah;
    return isEveryoneHere(users);
  })() === false
);

La función isEveryoneHere debe devolver false si Ryan no es una propiedad del objeto users

assert(
  (function () {
    delete users.Ryan;
    return isEveryoneHere(users);
  })() === false
);

--seed--

--seed-contents--

let users = {
  Alan: {
    age: 27,
    online: true
  },
  Jeff: {
    age: 32,
    online: true
  },
  Sarah: {
    age: 48,
    online: true
  },
  Ryan: {
    age: 19,
    online: true
  }
};

function isEveryoneHere(obj) {
  // Only change code below this line

  // Only change code above this line
}

console.log(isEveryoneHere(users));

--solutions--

let users = {
  Alan: {
    age: 27,
    online: true
  },
  Jeff: {
    age: 32,
    online: true
  },
  Sarah: {
    age: 48,
    online: true
  },
  Ryan: {
    age: 19,
    online: true
  }
};

function isEveryoneHere(obj) {
  return [
    'Alan',
    'Jeff',
    'Sarah',
    'Ryan'
  ].every(i => obj.hasOwnProperty(i));
}

console.log(isEveryoneHere(users));