Переименовать подраздел объекта с помощью ES6 - PullRequest
0 голосов
/ 28 мая 2020

У меня есть объект JS следующей структуры:

let data = {
  Apples: {
    A: 2,
    B: 9
  },
  Oranges: {
    C: 4,
    D: 8
  },
  Bananas: {
    E: 3,
    F: 2
  },
  Peaches: {
    G: 8,
    H: 4
  },
  Pears: {
    I: 10,
    J: 10
  },
  Melons: {
    K: 4,
    L: 7
  }
};

Мне нужно динамически переименовать подключ с помощью JS.

Например, мне нужно переименовать ключ A в New name. Как лучше всего это сделать с поддержкой ES6?

Я попытался l oop через объект, используя простой for l oop, и сгенерировать новый объект с переименованным ключом , но это действительно не самый эффективный способ!

1 Ответ

1 голос
/ 28 мая 2020

Что насчет этого?

Я не создаю новый объект, а добавляю новые свойства к существующему и удаляю исходные.

let data = {
  Apples: {
    A: 2,
    B: 9
  },
  Oranges: {
    C: 4,
    D: 8
  },
  Bananas: {
    E: 3,
    F: 2
  },
  Peaches: {
    G: 8,
    H: 4
  },
  Pears: {
    I: 10,
    J: 10
  },
  Melons: {
    K: 4,
    L: 7
  }
};

for (let key1 in data) {
  const e = data[key1];
  for (let key2 in e) {
    e["New Name for " + key2] = e[key2];
    delete e[key2];
  }
}

console.log(data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...