Страницы

Поиск по вопросам

вторник, 8 января 2019 г.

Как найти объект в объекте?

Здравствуйте. Допустим, у нас есть некий объект. Его структуру и то, что внутри, мы не знаем, но знаем, что там должен быть, например, объект 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

Комментариев нет:

Отправить комментарий