JS Как имея название параметра внутри объекта найти его(просмотрев все вложенные объекты) и!!! получить к нему путь? Приветствую господа, помогите!!
имеем параметр name, все хорошо, просто отлично!
имеем объект:
object {
client: {
name: 'Вася'
phone: '799999999'
}
order: {
param1: '2122'
param2: '1231'
}
}
Как найти путь к этому name?
то есть получить ------> object.client.name
если параметр param2 то соответственно object.order.param2
p.s. объекты большие, но повторений параметров нет, если использовать for in не могу вывести путь....

21 Авг 2019 в 07:05
203 +1
0
Ответы
1

Для того, чтобы найти путь к параметру внутри объекта, можно использовать рекурсивную функцию. Вот пример такой функции:

function findPath(obj, targetKey, path = '') {
for (let key in obj) {
if (typeof obj[key] === 'object') {
let result = findPath(obj[key], targetKey, path + key + '.');
if (result) {
return result;
}
} else if (key === targetKey) {
return path + key;
}
}
return null;
}
// Проверка работы функции
const obj = {
client: {
name: 'Вася',
phone: '799999999'
},
order: {
param1: '2122',
param2: '1231'
}
};
const targetKey = 'name';
const path = findPath(obj, targetKey);
console.log(path); // Выведет 'client.name'

Эта функция пройдет по всем свойствам объекта, и если найдет целевой ключ, то вернет путь к нему. Таким образом, при вызове функции findPath(obj, 'name'), вы получите путь client.name.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир