用ES6重命名对象的子项

问题描述 投票:0回答:1

我具有以下结构的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的最佳方法是什么?

我试图使用简单的for循环遍历对象,并使用重命名的键生成一个新对象,但这确实不是最有效的方法!

javascript ecmascript-6
1个回答
1
投票

这呢?

我不是生成新对象,而是将新属性添加到现有对象并删除原始对象。

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);
© www.soinside.com 2019 - 2024. All rights reserved.