首页 > 解决方案 > 使用 ES6 重命名对象的子键

问题描述

我有以下结构的 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 动态地重命名子键。

例如,我需要将密钥重命名ANew name. 启用 ES6 的最佳方式是什么?

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

标签: javascriptecmascript-6

解决方案


那这个呢?

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

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);


推荐阅读