undefsafe.js
701 字节
'use strict';
function undefsafe(obj, path) {
var parts = path.split('.');
var key = null;
var type = typeof obj;
// we're dealing with a primative
if (type !== 'object' && type !== 'function') {
return obj;
} else if (path.trim() === '') {
return obj;
}
while ((key = parts.shift())) {
obj = obj[key];
if (obj === undefined || obj === null) {
break;
}
}
// if we have a null object, make sure it's the one the user was after,
// if it's not (i.e. parts has a length) then give undefined back.
if (obj === null && parts.length !== 0) {
obj = undefined;
}
return obj;
}
if (typeof module !== 'undefined') {
module.exports = undefsafe;
}