Встречается на собеседованиях • сегодня

Как реализуешь Flatten Object JSКак реализуешь Flatten Object JS

javascript
function flattenObject(obj, parentKey = '', result = {}) {
  for (const key in obj) {
    if (obj.hasOwnProperty(key)) {
      const newKey = parentKey ? `${parentKey}.${key}` : key;
      
      if (typeof obj[key] === 'object' && obj[key] !== null && !Array.isArray(obj[key])) {
        flattenObject(obj[key], newKey, result);
      } else {
        result[newKey] = obj[key];
      }
    }
  }
  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 }

text

Рекурсивно обходим объект, объединяя ключи через точку для вложенных свойств. Проверяем, что значение - объект (но не массив и не null), чтобы продолжить рекурсию. Для примитивов и массивов записываем значение в результат. Временная сложность O(n), где n - количество свойств.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы