2015-12-23 23:09:12 +01:00

35 lines
715 B
JavaScript

/*global define*/
define(
function () {
// http://stackoverflow.com/a/6491621/229189
function getObjectByString ( str, obj ) {
if ( typeof str === 'string' ) {
str = str.replace( /\[(\w+)\]/g, '.$1' ); // convert indexes to properties
str = str.replace( /^\./, '' ); // strip a leading dot
var keys = str.split( '.' );
for ( var i = 0, len = keys.length; i < len; ++i ) {
var key = keys[i];
if ( key in obj ) {
obj = obj[key];
} else {
return;
}
}
}
return obj;
}
function getCopy ( obj ) {
return JSON.parse( JSON.stringify( obj ) );
}
return {
getObjectByString: getObjectByString,
getCopy: getCopy
};
}
);