Skip to content

Instantly share code, notes, and snippets.

@cassiomarques
Created March 19, 2012 11:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cassiomarques/2109193 to your computer and use it in GitHub Desktop.
Save cassiomarques/2109193 to your computer and use it in GitHub Desktop.
/**
* Recebe um objeto e o nome de uma propridade. Verifica se a propriedade existe no objeto.
* Se não existir, para cada propriedade do objeto que também seja um objeto, chama a si
* mesma recursivamente verificando se a propriedade pode ser encontrada.
* Caso a propriedade não seja encontrada, retorna false.
*/
function objectHasProperty(object, property) {
if (property in object) {
return true;
} else {
for (nextProperty in object) {
if (typeof object[nextProperty] === "object") {
return objectHasProperty(object[nextProperty], property);
}
}
return false;
}
}
var obj = {
a: 1,
b: 2,
c: {
zica: 10,
foo: 20,
bar: {
bla: 30,
ble: {
bli: 100,
blo: 200
},
blu: 200
}
}
};
console.log(objectHasProperty(obj, "ble")); // imprime true
console.log(objectHasProperty(obj, "abc")); // imprime false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment