Middle
30
Практическая задача: реализовать аналог метода Array.flat(), но для объектов (рекурсивное выравнивание вложенного объекта).
Сұралған компаниялар
BI.ZONE
AI-дан жауап
sobes.tech AI
Для реализации аналога Array.flat(), но для объектов, нужно рекурсивно пройти по всем вложенным объектам и "вытянуть" их свойства в один плоский объект с ключами, отражающими путь к значению.
Пример на JavaScript:
function flattenObject(obj, prefix = '') {
let result = {};
for (const [key, value] of Object.entries(obj)) {
const newKey = prefix ? `${prefix}.${key}` : key;
if (value && typeof value === 'object' && !Array.isArray(value)) {
Object.assign(result, flattenObject(value, newKey));
} else {
result[newKey] = value;
}
}
return result;
}
// Пример использования:
const nested = {
a: 1,
b: {
c: 2,
d: {
e: 3
}
}
};
console.log(flattenObject(nested));
// Вывод:
// { 'a': 1, 'b.c': 2, 'b.d.e': 3 }
Такой подход позволяет получить плоский объект с ключами, отражающими структуру вложенности через точку.