Здравствуйте. Допустим, у нас есть некий объект. Его структуру и то, что внутри, мы не знаем, но знаем, что там должен быть, например, объект innerObject, который может находится где угодно внутри. Вот пример объекта: var someObj1 = { io1: {sIo1:{ssIo01:'что-то'}} oi2: { sIo1:{ innerObject: {/*внутренности объекта*/} } } } И структура этого объекта и то, где будет находиться наш innerObject, нам не известно. Известно еще то, что innerObject находится НЕ в массиве. Как найти в некотором объекте, объект innerObject? PS Без использования каких-либо библиотек.
Ответ
function checkInObject( obj, name ) {
var res = null;
for( var i in obj ) {
if(obj.hasOwnProperty(i)) {
if(i === name) {
res = obj[i];
break;
}
if(obj[i] && obj[i].constructor === Object) {
var check = checkInObject( obj[i], name );
if( check ) {
res = check;
break;
}
}
}
}
return res;
}
var someObj1 = {
io1: {sIo1:{ssIo01:'что-то'}},
oi2: {
sIo1:{
innerObject: { test : "done" }
}
}
}
console.log(checkInObject( someObj1, 'innerObject' ).test); // -> done
Комментариев нет:
Отправить комментарий