Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var obj = {};
- obj.computers = {};
- obj.computers.favorite = "Commodore 64";
- obj.computers.popular = "Apple";
- if(obj != 'undefined' && obj != null) {
- if(obj.computers != 'undefined' && obj.computers != null)) {
- .....
- var fav = obj.computers.favorite || 'Unknown';
- var fav = getValueOrDefault(obj.computers.favorite, 'Unknown');
- function(obj, default) {
- try {
- if(obj != null) {
- return obj;
- } else {
- return default;
- }
- } catch(ex) {
- return default;
- }
- }
- var Nested = function() {};
- // prop is a dot-separated path like "foo.bar.baz"
- Nested.prototype.get = function(prop, _default) {
- var current = this;
- $.each(prop.split("."), function(i, e) {
- current = current[e] || undefined;
- if (current == undefined)
- return false;
- });
- return current || _default;
- }
- var fav = obj.get("computers.favourite", "Linux");
- // this emulates
- var fav = obj.computers.favourite || "Linux"; // throws error
- (obj && obj.computers && obj.computers.favorite) || 'Unknown'
- if (obj && obj.computers) {
- var fav = obj.computers.favorite || 'unknown';
- }
- function getValueOrDefault(str , obj, deflt){
- var a = str.split("."); o = obj;
- for(var i =0; i < a.length; i++){
- o = obj[a[i]];
- if(!o){
- return deflt;
- }
- }
- return o;
- }
- var obj = {};
- obj.computers = {};
- obj.computers.favorite = "Commodore 64";
- obj.computers.popular = "Apple";
- getValueOrDefault('computers.favorite', obj, 'Unknown');
- Object.prototype.isset = function (/* string */ full_path)
- {
- var props = full_path.split('.');
- var self = this; /* note that self is usually the window object */
- for (var ii = 0; ii < props.length; ++ii)
- {
- var prop = props[ii];
- var hasMoreComing = ii < props.length - 1 ? true : false;
- if (self[prop] !== null && typeof self[prop] === 'object' && hasMoreComing)
- {
- self = self[prop];
- continue; // Move up one level.
- }
- else if (hasMoreComing)
- return false; // ..because user queries a subproperty of a value type
- return self.hasOwnProperty(prop);
- }
- };
- var test = {};
- test.kuk = {};
- console.log( test.isset('kuk') ); // Prints true.
- test.kuk.fitta = {};
- console.log( test.isset('kuk.fitta') ); // Prints true.
- test.kuk.fitta = null;
- console.log( test.isset('kuk.fitta') ); // Prints true.
- test.kuk.fitta = undefined;
- console.log( test.isset('kuk.fitta') ); // Prints true
- delete test.kuk.fitta;
- console.log( test.isset('kuk.fitta') ); // Prints false
- test.kuk.fitta = 123;
- console.log( test.isset('kuk.fitta.doesnt.exist') ); // Prints false
Add Comment
Please, Sign In to add comment