Object getIf
by XcsN
JavaScript
let obj = {
1: {
result: {
live: [1, 2],
pre: [3, 4]
}
},
2: {
result: {
live: [1, 2],
pre: [3, 4]
}
}
};
Object.getIf = function(obj, keys, defaultValue) {
if (!(obj instanceof Object)) {
return defaultValue;
}
var key = keys instanceof Array ? keys.shift() : keys;
if (key || key === 0 || key === '0') {
var splits = key.split('.'),
val = Object.assign({}, obj),
result = true;
for (var x = 0, l = splits.length; x < l; x++) {
if (typeof val[splits[x]] === 'undefined') {
result = false;
break;
}
val = val[splits[x]];
}
if (result) {
return val;
}
}
return keys instanceof Array && keys.length > 0 ? Object.getIf(obj, keys, defaultValue) : defaultValue;
}
console.log(Object.getIf(obj, [], [1, 0]));