eval.js is a tiny piece of JavaScript which saves you the pain of repeatedly evaluating object (nested) properties. eval.js handles evaluation of object properties with the (dot notation) string key(s) - thus allowing quick&easy dynamic property evaluation.
Via Bower:
bower install eval.js
Via NPM:
npm install eval.js
In browser:
<script src="/bower_components/eval.js/eval.min.js"></script>
In NodeJs:
var evalJs = require('eval.js');
You must provide eval.js with an object
var testObject = {
a: {},
b: {
bb: true
},
c: {
cc: {
ccc: false
}
},
d: {
dd: {
ddd: {
dddd: ''
}
}
}
};
evalJs.isSet(testObject, 'a'); // true
evalJs.isSet(testObject, 'b.bb'); // true
evalJs.isSet(testObject, 'c.cc.ccc'); // true
evalJs.isSet(testObject, 'd.dd.ddd.dddd'); // true
evalJs.isSet(testObject, 'z'); // false
evalJs.isSet(testObject, 'z.zz'); // false
evalJs.isSet(testObject, ['a']); // true
evalJs.isSet(testObject, ['b', 'b.bb']); // true
evalJs.isSet(testObject, ['c', 'c.cc', 'c.cc.ccc']); // true
evalJs.isSet(testObject, ['d', 'd.dd', 'd.dd.ddd', 'd.dd.ddd.dddd']); // true
evalJs.isSet(testObject, ['z']); // false
evalJs.isSet(testObject, ['z', 'z.zz']); // false
evalJs.get(testObject, 'a'); // {}
evalJs.get(testObject, 'b'); // { bb: true }
evalJs.get(testObject, 'b.bb'); // true
evalJs.get(testObject, 'c.cc.ccc'); // false
evalJs.get(testObject, 'd.dd.ddd.dddd'); // ''
evalJs.get(testObject, 'z.zz.zzz'); // undefined