Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Returns the value at the given property.
- *
- * @param {object} - the input object
- * @param {string} - the property accessor expression.
- * @returns {*}
- * @alias module:object-get
- * @example
- * > objectGet({ animal: 'cow' }, 'animal')
- * 'cow'
- *
- * > objectGet({ animal: { mood: 'lazy' } }, 'animal')
- * { mood: 'lazy' }
- *
- * > objectGet({ animal: { mood: 'lazy' } }, 'animal.mood')
- * 'lazy'
- *
- * > objectGet({ animal: { mood: 'lazy' } }, 'animal.email')
- * undefined
- */
- function object_get(object, expression) {
- if (!(object && expression)) throw new Error('both object and expression args are required')
- return (''+expression).trim().split('.').reduce(function (prev, curr) {
- var arr = curr.match(/(.*?)\[(.*?)\]/)
- if (arr) {
- return prev && prev[arr[1]][arr[2]]
- } else {
- return prev && prev[curr]
- }
- }, object);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement