has(()=>{return a.b.c}) === false
Return true if nested object is valid or false if nested contains null or undefined
by Yury
HTML
<p>
Return true if nested object is valid or false if nested contains null or undefined: <br/>
has(()=>{return a.b.c})
</p>
CSS
* {
background: #1e1e1e;
font-family: sans-serif;
color: #c0c0c0;
text-align: center;
}
JavaScript
// has(()=>{return a.b.c}) === false
/* eslint-disable import/prefer-default-export, no-unsafe-finally */
/**
* Return true if nested object is valid or false if nested contains null or undefined
*
* @param fn - function.
*
* const a = {
* b: {
* c: 'tt'
* }
* }
*
* has(()=>{return a.b.c}) === true
*
*
*
*
* const a = {
* b: {
* }
* }
*
* has(()=>{return a.b.c}) === false
*/
export const has = fn => {
if (typeof fn !== 'function') {
console.error(`function "has" invalid parameter type fn ("${typeof fn}") expected "function"`)
return false
}
let value
try {
value = fn()
} catch (e) {
value = undefined
} finally {
return value !== undefined
}
}