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--
Termina de escribir la función para que devuelva true
si el objeto pasado contiene los cuatro nombres, Alan
, Jeff
, Sarah
and Ryan
y devuelva false
en caso contrario.
--hints--
No se debe acceder directamente al objeto users
assert(code.match(/users/gm).length <= 2)
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 que se le pasa.
assert(isEveryoneHere(users) === true);
La función isEveryoneHere
debe devolver false
si Alan
no es una propiedad del objeto que se le pasa.
assert(
(function () {
delete users.Alan;
return isEveryoneHere(users);
})() === false
);
La función isEveryoneHere
debe devolver false
si Jeff
no es una propiedad del objeto que se le pasa.
assert(
(function () {
delete users.Jeff;
return isEveryoneHere(users);
})() === false
);
La función isEveryoneHere
debe devolver false
si Sarah
no es una propiedad del objeto que se le pasa.
assert(
(function () {
delete users.Sarah;
return isEveryoneHere(users);
})() === false
);
La función isEveryoneHere
debe devolver false
si Ryan
no es una propiedad del objeto que se le pasa.
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(userObj) {
// 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(userObj) {
return [
'Alan',
'Jeff',
'Sarah',
'Ryan'
].every(user => userObj.hasOwnProperty(user));
}
console.log(isEveryoneHere(users));