Рекурсивные методы замены ключей в JavaScript

Чтобы рекурсивно заменить ключ в объекте JavaScript, вы можете использовать следующие методы:

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

function replaceKeyRecursive(obj, oldKey, newKey) {
  if (typeof obj !== 'object' || obj === null) {
    return obj;
  }
  if (obj.hasOwnProperty(oldKey)) {
    obj[newKey] = obj[oldKey];
    delete obj[oldKey];
  }
  for (var key in obj) {
    obj[key] = replaceKeyRecursive(obj[key], oldKey, newKey);
  }

  return obj;
}
// Usage
var obj = {
  key1: 'value1',
  key2: {
    key3: 'value2',
    key4: {
      key5: 'value3'
    }
  }
};
replaceKeyRecursive(obj, 'key3', 'newKey');
console.log(obj);

Метод 2: JSON.stringify() и JSON.parse()
Другой подход — преобразовать объект в строку JSON с помощью JSON.stringify(), заменить нужный ключ в строку, а затем проанализировать ее обратно в объект, используя JSON.parse().

function replaceKeyRecursive(obj, oldKey, newKey) {
  var newObj = JSON.parse(JSON.stringify(obj));
  if (newObj.hasOwnProperty(oldKey)) {
    newObj[newKey] = newObj[oldKey];
    delete newObj[oldKey];
  }
  for (var key in newObj) {
    newObj[key] = replaceKeyRecursive(newObj[key], oldKey, newKey);
  }
  return newObj;
}
// Usage
var obj = {
  key1: 'value1',
  key2: {
    key3: 'value2',
    key4: {
      key5: 'value3'
    }
  }
};
var newObj = replaceKeyRecursive(obj, 'key3', 'newKey');
console.log(newObj);